【问题标题】:How can I fix the Foreach array in array in php to return the result如何在 php 中修复数组中的 Foreach 数组以返回结果
【发布时间】:2021-03-19 21:29:40
【问题描述】:

请求后来自 Api 的数据

array:1 [▼
  "id" => 1
  "name" => "test"
  "active_domain" => "https://drycleaner.com"
  "domains" => array:1 [▶]
  "rr" => array:2 [▼
    0 => array:1 [▼
      0 => array:1 [▼
        "end_at" => "2020-11-08T08:00:00.000+08:00"
      ]
    ]
    1 => array:1 [▼
      0 => array:1 [▼
        "end_at" => "2020-11-08T08:00:00.000+08:00"
      ]
    ]
  ]
]

php laravel Blade.view

@foreach ($store["rr"] as $key2=>$rr){
     @foreach ($rr["rss"] as key3 =>$rss)}
        <td>{{ date("d-M-y  H:i", strtotime($rss["end_at"])) }}</td>
          @endforeach

未定义的 end_at 错误。我认为这是 foreach 列命名的问题。如何从“end_at”的api中获取并插入到表中。

【问题讨论】:

  • key dssl出现在哪里?未显示在您的数组输出中
  • 听说过array_combine吗?我认为你应该使用它。正如其他评论者所说,“dssl”出现在哪里?

标签: php arrays laravel-blade


【解决方案1】:

end_at 键位于$dr 的第二个数组上。你需要再次调用foreach或者直接使用key比如$dssl[0]["end_at"]:

<td>{{ date("d-M-y  H:i", strtotime($dssl[0]["end_at"])) }}</td>

或使用 foreach

@foreach ($store["dr"] as $key2=>$dr){
     @foreach ($dr["dssl"] as key3 =>$dssl)}
          @foreach ($dssl as key4 =>$dss)}
        <td>{{ date("d-M-y  H:i", strtotime($dss["end_at"])) }}</td>
          @endforeach
      @endforeach
@endforeach

【讨论】:

  • 我认为缺少一个大括号。
  • 我认为是正确的,你复制了哪个代码?
  • 现在它的说法是未定义的索引:dssl,有什么想法吗?
  • 第二个。
  • 你没有正确复制。尝试在您的帖子中向我展示您当前的代码
【解决方案2】:

在刀片语法中,您必须关闭每个 foreach :

@foreach ($store["dr"] as $key2=>$dr){
    @foreach ($dr as key3 =>$dssl)}
        <td>{{ date("d-M-y  H:i", strtotime($dssl["end_at"])) }}</td>
    @endforeach
@endforeach

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-29
    • 2015-06-23
    • 2010-12-05
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    相关资源
    最近更新 更多