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) }}