共計 1253 個字符,預計需要花費 4 分鐘才能閱讀完成。
在 PHP 中,可以使用遞歸來查找無限級分類的所有子節點。下面是一個示例代碼:
php
function findAllChildren($category, $parentId, &$result) {
foreach ($category as $cat) {
if ($cat['parent_id'] == $parentId) {
$result[] = $cat;
findAllChildren($category, $cat['id'], $result);
}
}
}
// 假設 $category 是一個包含所有分類信息的數組
$category = [
['id' => 1, 'parent_id' => 0, 'name' => ' 分類 1 '],
['id' => 2, 'parent_id' => 0, 'name' => ' 分類 2 '],
['id' => 3, 'parent_id' => 1, 'name' => ' 分類 1 -1'],
['id' => 4, 'parent_id' => 1, 'name' => ' 分類 1 -2'],
['id' => 5, 'parent_id' => 3, 'name' => ' 分類 1 -1-1'],
['id' => 6, 'parent_id' => 3, 'name' => ' 分類 1 -1-2'],
];
$result = [];
findAllChildren($category, 1, $result); // 查找 id 為 1 的分類的所有子節點
// 輸出結果
foreach ($result as $cat) {
echo $cat['name'] . '
';
}
以上代碼首先定義了一個 findAllChildren
函數,該函數接收三個參數:$category
是包含所有分類信息的數組,$parentId
是要查找子節點的分類的父節點的 id,$result
是存儲查找結果的數組。
函數內部使用 foreach 循環遍歷所有分類信息,如果某個分類的 parent_id
等于要查找的父節點 id,則將該分類添加到結果數組中,并遞歸調用 findAllChildren
函數查找該分類的子節點。
最后,使用示例數據調用 findAllChildren
函數,在結果數組中查找 id 為 1 的分類的所有子節點,并輸出結果。
注意:以上代碼僅供參考,實際使用時,你需要根據自己的分類數據結構進行相應的修改。
丸趣 TV 網 – 提供最優質的資源集合!