Tôi có một cây các loại có cấu trúc sau:Đệ quy và đi ngang qua tham khảo
[6] => Array
(
[id] => 6
[name] => computers
[productCount] => 0
[children] => Array
(
[91] => Array
(
[id] => 91
[name] => notebook
[productCount] => 5
[children] => Array
(
)
)
[86] => Array
(
[id] => 86
[name] => desktop
[productCount] => 0
[children] => Array
(
)
)
)
)
Bên cạnh một tiểu thể loại, mỗi loại có thể chứa các sản phẩm (như một thư mục có thể chứa các thư mục con và chỉ tập tin).
Tôi đang cố gắng viết hàm đệ quy mà tôi muốn lấy mảng này làm tham chiếu và loại bỏ cả hai loại lá với [productCount] = 0 và tất cả các danh mục mẹ có chứa các nút trống như vậy. Nói cách khác, sau khi xử lý, tôi muốn chỉ có những danh mục giữ sản phẩm trên bất kỳ cấp phụ nào.
Tôi đã viết một số mã, hiện đang gỡ lỗi và nó không loại bỏ các nút trống. Có thể tôi không sử dụng tài liệu tham khảo đúng cách. Xin vui lòng, giúp tôi sửa chữa nó, nếu có thể.
function pruneTree(& $node) {
if (! $node['children'] && ! $node['productCount']) {
unset($node);
}
if (! empty($node['children'])) {
foreach ($node['children'] as $key => $child) {
pruneTree($node['children'][$key]);
}
}
return;
}
Là 'mảng() == false'? – jantimon
@Ghommey: Có, trong PHP một mảng trống được coi là giả. – BoltClock