gpt4 book ai didi

PHP:以递归方式填充数组

转载 作者:行者123 更新时间:2023-11-29 20:50:16 24 4
gpt4 key购买 nike

我有一个如下所示的 MySQL 表

-------------------------
field | parent_field
------------------------
model | series
height | series
height | model
length | model
length | height

表格就是这样的结构,所以每个字段可以有多个parent_field

用户首先选择一个系列,然后我需要获取所有需要更改的字段。

例如,我需要一个包含以下内容的表

$fields = array(
'model' => [
'name' => 'model'
],

'height' => [
'name' => 'height'
],

'length' => [
'name' => 'length'
]
);

因此,虽然长度没有parent_field系列,但有高度,而高度又具有< em>系列作为parent_field

我的逻辑如下

private function loadFields($parent) {
$children = array();
$children = $this->loadChildren();

foreach($children as $child) {
$data[$child->field][] = array(
'name' => $child->field,
.
.
.
);
}
}

函数loadChildren()就是这样做的,它执行SELECT DISTINCT并返回给定父级的子级。

但是,我需要继续加载当前子项的子项。

我被困住了,有人能指出我正确的方向吗?

最佳答案

您可以使用 GROUP_CONCAT 直接通过 SQL 查询来实现

SELECT field, GROUP_CONCAT(parent_field SEPARATOR ',') as parent_fields
FROM mytable GROUP BY field

解析行时,您可以将parent_fields展开,并获得您想要的包含所有父值的子数组。

关于PHP:以递归方式填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38114417/

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