循環遞歸 function user_($fid){ str="select * from user_table where uid='$fid' "http://SQL語句 $db=pg_query($str);//查詢 while($row=pg_fetch_array($db))//循環 { $str.=user_($row['id']).',';//遞歸 }}沒測試 大體的思路就這樣 試試看
成都創新互聯公司-成都網站建設公司,專注成都網站設計、做網站、成都外貿網站建設公司、網站營銷推廣,域名注冊,虛擬主機,網站托管運營有關企業網站制作方案、改版、費用等問題,請聯系成都創新互聯公司。
function?sumShuzi($tree,?$updateData?=?array())?{
$sum?=?0;
//?foreach($tree?as?$key?=?$item)?{??//這句話有毒
foreach($tree?as?$key?=?$item)?{
if(isset($item['children']))?{
$oldPshuzi?=?$tree[$key]['Pshuzi'];
$tree[$key]['Pshuzi']?=?sumShuzi($item['children'],?$updateData);
if($oldPshuzi?!=?$tree[$key]['Pshuzi'])?{
$updateData[$item['id']]?=?array($tree[$key]['Pshuzi'],?$tree[$key]['Pname_ch']);
}
}
$sum?+=?$tree[$key]['Pshuzi'];
}
return?$sum;
}
$tree?=?json_decode('[{"id":"1","Pid":"0","Pname_ch":"\u6e20\u9053\u90e8","Pshuzi":"1638000","children":[{"id":"4","Pid":"1","Pname_ch":"\u9500\u552e\u4e8c\u90e8","Pshuzi":"895000","children":[{"id":"13","Pid":"4","Pname_ch":"\u5468\u7ecf\u7406","Pshuzi":"28","children":[{"id":"28","Pid":"13","Pname_ch":"\u6e56\u5357","Pshuzi":"158000"},{"id":"35","Pid":"13","Pname_ch":"\u65b0\u7586","Pshuzi":"19000"}]},{"id":"40","Pid":"4","Pname_ch":"\u9648\u7ecf\u7406","Pshuzi":"5000"}]}]}]',?true);
//$tree是具有父子關系的數據樹
sumShuzi($tree,?$updateData);
foreach?($updateData?as?$id?=?$item)?{
$sql?=?"update?your_table?set?Pshuzi={$item[0]}?where?id={$id}";
mysqli_query($db,?$sql);????//$db是你的數據庫連接結果
}
首先 將json 解碼成數組, 用json_decode 函數 注意 一定要加上第二個參數 否則他會返回一個對象。接下來就是地遞歸了。這是一個最簡單的遞歸只要逐個遍歷即可。
下面是完整的代碼:
$data=?json_decode($str,true);
$options?=?getChildren($data);
function?getChildren($parent,$deep=0)?{
foreach($parent?as?$row)?{
$data[]?=?array("id"=$row['id'],?"name"=$row['name'],"pid"=$row['parentid'],'deep'=$deep);
if?($row['childs'])?{
$data?=?array_merge($data,?getChildren($row['childs'],?$deep+1));
}
}
return?$data;
}
?
select?name=""?id=""
?php??foreach?($options?as?$row)?{??
option?value="?php?echo?$row['id']??"?php?echo?str_pad("",$row['deep']*3,?"-",STR_PAD_RIGHT);???php?echo?$row['name'];??/option
?php?}??
/select
以上代碼已測試通過 效果圖如下
給個函數你,調用get_category()就是一個數組格式的結果
function get_category($parent_id=0){
$arr=array();
$sql = "select * from category where parent_id=$parent_id";//查詢子級數據
$result = array(a_object,b_object,,,)=sql_query($sql);//查詢結果一個數組或列表格式,自己完善。
if($result){
foreach($result as $re){//循環數組
if(get_category($re.id))//如果子級不為空
$re['child'] = get_category($re.id);
$arr[] = $re;
}
return $arr;
}
文章標題:PHP查數據遞歸 php的遞歸
網站地址:http://m.newbst.com/article20/hjpdco.html
成都網站建設公司_創新互聯,為您提供、企業建站、電子商務、服務器托管、微信小程序、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯