溫馨提示×

php無限級分類查找所有子節點

PHP
小云
185
2023-10-11 11:59:28
欄目: 編程語言

在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的分類的所有子節點,并輸出結果。

注意:以上代碼僅供參考,實際使用時,你需要根據自己的分類數據結構進行相應的修改。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女