gpt4 book ai didi

php - 如何在php中获取二叉树中的所有 child 计数

转载 作者:行者123 更新时间:2023-11-29 02:13:13 25 4
gpt4 key购买 nike

我有h那个类型的表

enter image description here

现在我们想要完整的二叉树和完整的左右chides数

最佳答案

不幸的是,仅使用 SQL 无法有效地实现这一点(事实上每个节点只能有两个子节点,左和右,这无济于事,因为节点仍然可以嵌套任意深度),您必须递归地使用PHP:

function countChildren($parentId) {
$children = (`SELECT user_id FROM table where parent_id = ?`, $parentId); // Pseudocode, use a prepared statement with your ORM or MySQL library/PDO
$count = count($children);
foreach($children as $userId) {
$count += countChildren($userId);
}
return $count;
}

但是,如果您将表格切换为使用 nested set代替树,向 child 查询信息变得更加高效:

SELECT count(*) FROM table AS t JOIN table as parent_table ON (t.left > parent_table.left AND t.right < parent_table.right) WHERE parent_table.user_id = ?;

关于php - 如何在php中获取二叉树中的所有 child 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46169232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com