首页 > 解决方案 > 二维数组在 laravel 中没有循环

问题描述

我有一个片段,我试图在一个数组上循环 2 次,如下所示:

     $rules = Rule::get();
        $segments = [];
        foreach ($rules as $rule) {
            $segments['segment = "basic"']['serviceType']= $rule->segment;
            foreach($rule->steps as $key => $value) {
                $segments['segment = "basic"'][$key] = $value;
            }
        }
        return $segments;

所以我期望从该代码中得到如下:

 'segment = "BASIC"'     => [
                'serviceType = "3"'  => [
                  'item1' => 1,
                  'item2' => 2
                ],
                'serviceType = "2"'  => [
                  'item1' => 1,
                  'item2' => 2
                ],
                'serviceType = "1"'  => [
                  'item1' => 1,
                  'item2' => 2
                ],

但我得到的是如下

^ array:1 [
  "segment = "basic"" => array:3 [
    "serviceType" => "1"
    "item1" => 1
    "item1" => 2
  ]
]

所以我想要的是segment = "basic" repeats as the count of Rule` 模型中的数组我知道我的代码正在返回 5 个模型实例,但我猜在某些时候代码会覆盖数组而不是循环它。提前致谢

标签: phparrayslaravel

解决方案


您的代码没有将项目放在数组的 servicetype 部分中:这可以解决问题吗?

$rules = Rule::get();
        $segments = [];
        foreach ($rules as $rule) {
            $segments['segment = "basic"']['serviceType = "'. $rule->segment . '"']= [] ;
            foreach($rule->steps as $key => $value) {
                $segments['segment = "basic"']['serviceType = "'. $rule->segment . '"'][$key] = $value;
            }
        }
        return $segments;

推荐阅读