淺談 PHP遞歸的理解(遞歸聽起來很高端的詞匯 其實就是兩次循環)
阿新 • • 發佈:2018-10-29
通過 UNC ret fun array row 子元素 原生 次循環
$data = [ [‘pid‘=>0,‘id‘=>1], [‘pid‘=>1,‘id‘=>2], [‘pid‘=>3,‘id‘=>4], [‘pid‘=>0,‘id‘=>3], ];
//對上面的數據進行遞歸排序(原生的寫法) function genCate( $data, $pid = 0) { static $result = array(); foreach ($data as $key => $row) { if ($row[‘pid‘] == $pid) {$result[] = $row;
$parent_id = $row[‘id‘]; foreach($data as $v){ if ($v[‘pid‘] == $parent_id) { $result[] = $v; } }
} } return $result; }
PHP遞歸的寫法
function genCate( $data, $pid = 0) { static $result= array(); foreach ($data as $key => $row) { if ($row[‘pid‘] == $pid) { $result[] = $row; // $parent_id = $row[‘id‘]; genCate($data, $row[‘id‘]); /* foreach($data as $v){ if ($v[‘pid‘] == $parent_id) { $result[] = $v; } }*/ } } return $result; }
其實就是同一個數組兩次循環 通過變動的是父id 不斷找子元素
淺談 PHP遞歸的理解(遞歸聽起來很高端的詞匯 其實就是兩次循環)