> 文章列表 > array_column php

array_column php

array_column php

介绍

'array_column' 是 PHP 语言的一个函数,用于获取二维数组中指定列的值。

语法

array_column(array $array, $column_key, $index_key = null) : array

其中,$array 表示要获取值的数组,$column_key 表示要获取的列名称(可以是整数、字符串或 null),$index_key 表示要作为结果数组键名的列名称(可以是整数、字符串或 null)。

用法

首先,我们需要有一个二维数组:

$users = [ ['id' => 1, 'name' => 'Tom', 'age' => 20], ['id' => 2, 'name' => 'Jerry', 'age' => 18], ['id' => 3, 'name' => 'Bob', 'age' => 25],];

现在我们想获取 $users 数组中所有用户的姓名,可以这样做

$names = array_column($users, 'name');var_dump($names);

这将输出:

array(3) { [0]=> string(3) "Tom" [1]=> string(5) "Jerry" [2]=> string(3) "Bob"}

另外,如果希望将某个列的值作为结果数组的键名,可以这样做:

$usersById = array_column($users, null, 'id');var_dump($usersById);

这将输出:

array(3) { [1]=> array(3) { ["id"]=> int(1) ["name"]=> string(3) "Tom" ["age"]=> int(20) } [2]=> array(3) { ["id"]=> int(2) ["name"]=> string(5) "Jerry" ["age"]=> int(18) } [3]=> array(3) { ["id"]=> int(3) ["name"]=> string(3) "Bob" ["age"]=> int(25) }}

注意事项

当 $index_key 为 null 时,返回的数组将从 0 开始索引。

如果 $column_key 与某个数组的键名冲突,这个数组值将被覆盖。

如果提供的 $column_key 不存在,则返回的数组将包含 NULL 值。

示例

以下代码演示了如何使用 'array_column' 函数动态获取二维数组列的列名:

$users = [ ['id' => 1, 'name' => 'Tom', 'age' => 20], ['id' => 2, 'name' => 'Jerry', 'age' => 18], ['id' => 3, 'name' => 'Bob', 'age' => 25],];$keys = ['id', 'age'];$result = array_map(function ($item) use ($keys) { return array_intersect_key($item, array_flip($keys));}, $users);var_dump($result);

这将输出以下内容:

array(3) { [0]=> array(2) { ["id"]=> int(1) ["age"]=> int(20) } [1]=> array(2) { ["id"]=> int(2) ["age"]=> int(18) } [2]=> array(2) { ["id"]=> int(3) ["age"]=> int(25) }}