数组删除父数值数组


Array remove parent numeric array

如何制作此阵列:

array(2) {
  [0]=>
  array(1) {
    ["plz"]=>
    string(4) "4460"
  }
  [1]=>
  array(1) {
    ["plz"]=>
    string(4) "4000"
  }
}

变成这样只需要一个数组中的值键无关紧要:

array(2) {
  [0]=>
  string(4) "4460"
  [1]=>
  string(4) "4000"
}

是否有帮助功能或其他可以帮助的功能?

如果事先知道密钥:

如果您使用的是PHP 5.5+,则可以使用array_column()来提取具有plz密钥的所有子数组:

$result = array_column($array, 'plz');

如果您使用的是旧版本的PHP:,那么使用array_map()也可以实现同样的效果

$result = array_map(function($sub) { return $sub['plz']; }, $array);

如果事先不知道密钥:

使用array_walk_recursive():

$result = array();
array_walk_recursive($array, function($v) use (&$result) { $result[] = $v; });

请注意,它是递归工作的,所以如果您有更复杂的数组,它仍然可以工作。

或者,您可以使用RecursiveIteratorIterator类:

$result = array();
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach($iterator as $value) {
    $result[] = $value;
}

有关更多详细信息,请参阅以下问题:RecursiveIteratorIterator如何在PHP中工作?

另一种选择:

$array = call_user_func_array('array_merge', array_map('array_values', $array));
  1. 使用array_values()从子数组中获取数字索引数组
  2. 使用array_merge()合并这些数组