如何从另一个数组的键的值创建数组?问题

2022-08-30 17:26:48

我有一个数组,如下所示:

$arr1 = array(
  0 => array(
    'name' => 'tom',
    'age' => 22
  ),
  1 => array(
    'name' => 'nick',
    'age' => 18
  )
);

但是,我想从中创建一个由所有名称组成的数组,因此它将变成:

$arr2 = array('tom', 'nick');

我已经看过了,但这行不通,因为这是一个多维数组!array_filter()

问题

如何创建具有来自另一个多维数组的特定键 () 值的数组?name


答案 1

较新版本的PHP允许将array_map()与函数表达式而不是函数名称一起使用:

$arr2 = array_map(function($person) {
    return $person['name'];
}, $arr1);

但是,如果您使用的是 PHP < 5.3,则使用简单循环要容易得多,因为需要为这个简单操作定义一个(可能是全局)函数。array_map()

$arr2 = array();

foreach ($arr1 as $person) {
    $arr2[] = $person['name'];
}

// $arr2 now contains all names

答案 2

这可以通过使用更简单的方式完成array_column

$arr2= array_column($arr1, 'name');

print_r($arr2); //Array ( [0] => tom [1] => nick )

array_column用于获取子数组的列。


推荐