【问题标题】:Foreach Array error (PHP)Foreach 数组错误 (PHP)
【发布时间】:2018-09-22 12:07:46
【问题描述】:

我想创建一个循环数组的动态菜单是 1 个对象菜单。但是发生了错误。 我们的代码在它下面:

$menus = [{"id" => 1, "label" => "content", "parent_id" => 0},{"id" => 2, "label" => "inbox", "id" => 3, "parent_id" => 0}, {"id" => 4, "label" => "item", "parent_id" => 0}];
$sub_menus = [{"id" => 5, "label" => "banner", "parent_id" => 1},{"id" => 6, "label" => "ads", "parent_id" => 1}];

foreach($menus as $row => $value){
    $nav[$row] = $value;
    foreach($sub_menus as $r => $v) {
        if($v['parent_id'] == $value['id']){
            $nav[$row]['sub_menu'][$r] = $v;
        }
     }
 }

我收到错误通知,“间接修改 App\Menu 的重载元素无效

请帮帮我:)

【问题讨论】:

  • 如何获得菜单和子菜单?显示上面的代码
  • $menus,$sub_menus 都不是php数组,而不是{}写[]
  • 提供您预期输出的样本,以便我们更好地理解。
  • 问题在第一行。你有 2 个“id”。 {"id" => 2, "label" => "inbox", "id" => 3, "parent_id" => 0},

标签: php arrays laravel foreach


【解决方案1】:

代码正在运行。你的数组中有很多错误。

固定

$menus = [
            [
                "id" => 1,
                "label" => "content",
                "parent_id" => 0
            ],
            [
                "id" => 2,
                "label" => "inbox",
                "parent_id" => 0
            ],
            [
                "id" => 4,
                "label" => "item",
                "parent_id" => 0
            ]
        ];

        $sub_menus = [
            [
                "id" => 5,
                "label" => "banner",
                "parent_id" => 1
            ],
            [
                "id" => 6,
                "label" => "ads",
                "parent_id" => 1
            ]
        ];

        foreach($menus as $row => $value){
            $nav[$row] = $value;
            foreach($sub_menus as $r => $v) {
                if($v['parent_id'] == $value['id']){
                    $nav[$row]['sub_menu'][$r] = $v;
                }
            }
        }

【讨论】:

  • 是的,它工作,我失败了,因为在我的 laravel 框架中,我从数据库中提取数据而不使用引用 toArray。谢谢迈克:)
【解决方案2】:

你有一个损坏的数组,比如 json 到数组的错误转换;

您可以测试(执行)它here(工作示例)

【讨论】:

  • 是的,它工作,我失败了,因为在我的 laravel 框架中,我从数据库中提取数据而不使用引用 toArray。谢谢Overals。非常感谢您对 wtools.io 链接的建议:D 太棒了!我现在用它
猜你喜欢
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 2012-06-11
  • 2018-01-22
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多