php - 如何从另一个数组键的值创建一个数组?

标签 php array-filter

我有一个数组如下:

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

但是我想从它创建一个包含所有名称的数组,所以它会变成:

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

我查看了 array_filter(),但那是行不通的,因为这是一个多维数组!

问题

如何使用另一个多维数组中特定键 (name) 的值创建一个数组?

最佳答案

较新版本的 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

关于php - 如何从另一个数组键的值创建一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550976/

相关文章:

php - 如何根据文件上传字段是否选择了文件来运行 php 代码?

php - 从 PHP 数组中删除 NULL、FALSE 和 '' - 但不是 0

php - 为什么这个 array_filter 方法不调用这个函数?

php - 如何使用具有复杂( curl )语法的常量?

php - 为什么不同的 HTML id 具有相同的样式?

php - 通过php函数插入得到错误

php - 不同版本的php.ini默认文件可以自行下载吗?

php - 如何找到数组末尾与数组开头相同的最大字符序列?

ios - 使用谓词过滤数组,限制结果?

PHP - 使用 array_filter 从哈希表(数组)中删除项目