cID | cPID | cSlug | cName
---|---|---|
1 | 0 | 你好H1 | //tr>
2 | 0 | 世界世界 |
3 | 0 | 火星 | 火星
4 | 1 | 人 | 人
5 | 1 | 狗狗 |
6 | 3 | 猫猫:( | [/tr>
如果$row
是对象,则不能执行$menu[$row->cID]['submenus']
,因为$menu[$row->cID]
是对象,而不是数组。
您应该使用$menu[$row->cID]->submenus
。
此外,$row->cPID === 0
不是一个好的条件,因为如果不创建";主";如果cPID不为0,则输入。
如果不存在,您可以使用if (!isset($menu[$row->cID])) {
来创建主条目,并且如果定义了cPID,则要添加的if ($row->cPID > 0) {
。
全代码
$menu = [];
foreach ($getMenuData as $row) {
if (!isset($menu[$row->cID])) {
$menu[$row->cID] = $row;
$menu[$row->cID]->submenus = [];
}
if ($row->cPID > 0) {
$menu[$row->cPID]->submenus[] = $row;
}
}
foreach ($menu as $item) {
echo $item->cID . '<br>' . PHP_EOL; // <<--- LINE 16
foreach ($item->submenus as $subitem) {
echo '<br>' . $subitem->cName . '--' . $subitem->cPID . PHP_EOL;
}
}
输出:
1<br>
<br>People--1
<br>Dogs--1
2<br>
3<br>
<br>Cats:)--3