【问题标题】:2 dimension array is not looping in laravel二维数组在 laravel 中没有循环
【发布时间】:2021-02-17 14:37:07
【问题描述】:

我有一个 sn-p,我试图在一个数组上循环 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 个模型实例,但我猜在某些时候代码会覆盖数组而不是循环它。提前谢谢

【问题讨论】:

  • 您提供的代码似乎不会输出您所说的内容。该循环在此处定义了一个'serviceType' 键:$segments['segment = "basic"']['serviceType']= $rule->segment;,但该键在您获得的数组中的该级别不存在。
  • 很抱歉我没有得到你,但我确信这是当前代码的输出
  • 我唯一的问题是应该循环并给我 4 个数组的第二部分只返回 1
  • 您还可以从创建minimal, reproducible example 中受益。我们不知道这些值来自哪里,因此很难判断您做错了什么。
  • 旁注:您使用的数组键非常混乱,$segments['basic'] ... 会使您的代码更具可读性。 serviceType 也一样

标签: php arrays laravel


【解决方案1】:

您的代码没有将项目放入数组的 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2016-06-28
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多