使用 Foreach 打印多个数组

问题描述 投票:0回答:1

我正在尝试使用 foreach 获取数组的 id:

$arrays = array (
  'bike' => 
  array (
    'id' => 29,
  ),
  'car' => 
  array (
    0 => 
    array (
      'id' => 189,
    ),
    1 => 
    array (
      'id' => 190,
    ),
  ),
  'plane' => 
  array (
    'id' => 313,
  ),
)

但有些数组位于第二层(汽车就是这个例子)。

我知道我可以在第一级做到这一点:

foreach ($arrays as $array) {
  $array['id']
}

我可以在第二级做到这一点:

foreach ($arrays as $array => $value) {
  $value['id']
}

但是如何将这些方法与只有一个 foreach 结合起来呢?

php foreach
1个回答
0
投票

您可以使用 array_walk_recursive() 来实现此目的。例如:

$output = [];

array_walk_recursive($input,  function($value, $key) use (&$output) {
    $output[] = $value;
}, $output);

var_export($output);

这将输出:

array (
  0 => 29,
  1 => 190,
  2 => 222,
  3 => 313,
)

演示:https://3v4l.org/9Sp50

© www.soinside.com 2019 - 2024. All rights reserved.