【问题标题】:Use condition to get inside associative array使用条件进入关联数组
【发布时间】:2021-06-20 14:04:42
【问题描述】:

我有以下数据进入数据:

0 => array [
    0 => "A"
    1 => "B"
    2 => "C"
  ]
1 => array [
    "order" => array [
      0 => "B"
      1 => "C"
      2 => "E"
    ]
  ]
2 => "B"

在显示我所做的数据时:

@foreach($data as $key => $list)       
<li style="display:block"><span>{{$key}}</span>. 
    <span>{{ is_array($list) ? implode (", ", $list) : $list }}</span>
</li>
@endforeach

由于有不同的数组来,当涉及到 1 个索引时,它表示数组到字符串的转换。我该如何处理?

【问题讨论】:

  • 我认为是因为索引 1 是多维的
  • @ket-c 我该如何解决?
  • 通过另一个三元组来检查 TRUE 中的数组
  • 如果我可能会问,是否所有索引 1 的数据都具有这种结构?
  • 我认为您应该改为嵌套 foreach。

标签: php foreach associative-array


【解决方案1】:

您需要将数据数组元素重新组织成相同的格式:

$data = [
   ["A", "B", "C"],
   ["B", "C", "E"],
   ["B"],
];

控制器

$data = [
   ["A", "B", "C"],
   "order" =>  [
      ["B", "C", "E"]
   ],
   "B"
];
$items = [];
foreach ($data as $i => $datum) {    
    if (is_string($i)) { // handle $data[$i]["order"]  
       $items[] = current($datum);   
       continue;
    }

    $items[] = (array) $datum; // handle $data[2] (B)
}

将项目转移到模板并foreach它

// this is an example, use template engine syntax
foreach($items as $listItems) {
   var_dump(implode(', ', $listItems));
}

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 1970-01-01
    • 2018-04-08
    • 2019-03-05
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多