数组删除父数字数组

use*_*172 -1 php arrays multidimensional-array

我该怎么做这个数组:

array(2) {
  [0]=>
  array(1) {
    ["plz"]=>
    string(4) "4460"
  }
  [1]=>
  array(1) {
    ["plz"]=>
    string(4) "4000"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

array(2) {
  [0]=>
  string(4) "4460"
  [1]=>
  string(4) "4000"
}
Run Code Online (Sandbox Code Playgroud)

是否有辅助功能或可以帮助的东西?

Ama*_*ali 7

如果事先知道密钥:

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

$result = array_column($array, 'plz');
Run Code Online (Sandbox Code Playgroud)

array_map()如果您使用的是旧版本的PHP,则可以使用相同的方法:

$result = array_map(function($sub) { return $sub['plz']; }, $array);
Run Code Online (Sandbox Code Playgroud)

如果事先不知道密钥:

用途array_walk_recursive():

$result = array();
array_walk_recursive($array, function($v) use (&$result) { $result[] = $v; });
Run Code Online (Sandbox Code Playgroud)

请注意,它以递归方式工作,因此如果您有更复杂的数组,它仍然可以工作.

或者,您可以使用RecursiveIteratorIterator类:

$result = array();
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));

foreach($iterator as $value) {
    $result[] = $value;
}
Run Code Online (Sandbox Code Playgroud)

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