gpt4 book ai didi

php - 指定具有根类别和子类别的数组

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

使用 PHP 和 MySQL。

我有一个表(类别),仅包含三个字段:id名称父级

其中 parent 在根类别上为 0,如果派生自另一个类别,则为整数。

但是我们可以在其中有多个级别,例如:

id, name, parent
01, Name 01, 00
02, Name 02, 00
03, Name 03, 00
04, Name 04, 02
05, Name 05, 01
06, Name 06, 01
07, Name 07, 05
08, Name 07, 05
09, Name 09, 04
10, Name 10, 07
11, Name 11, 10

我们如何返回一个包含根及其所有子节点的数组?例如,对于 id=1,数组应为:

array (
1 => array(
id => 1,
name => 'Name 1'
),
5 => array(
id => 5,
name => 'Name 5'
),
6 => array(
id => 6,
name => 'Name 6'
),
7 => array(
id => 7,
name => 'Name 7'
),
8 => array(
id => 8,
name => 'Name 8'
),
10 => array(
id => 10,
name => 'Name 10'
),
11 => array(
id => 11,
name => 'Name 11'
)
);

我看过这个link并尝试了一些变化,但我还没有成功。

最佳答案

这个 SQL 查询应该会得到你想要的数据:

    SELECT DISTINCT c.id as id, c.name as name FROM category c, category s WHERE s.parent = $id OR c.id = $id;

然后你可以使用mysqli_fetch_assoc获取您需要的数组的一部分。如果您需要数组索引与 SQL 索引相匹配,那么您可以迭代 mysqli_fetch_assoc 的结果并将其放入新数组中:

    $target = array();
while ( $row = mysqli_fetch_assoc( $result ) ) {
$target[$row["id"]] = $row;
}

关于php - 指定具有根类别和子类别的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14777733/

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