在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的分類的所有子節點,并輸出結果。
注意:以上代碼僅供參考,實際使用時,你需要根據自己的分類數據結構進行相應的修改。