(PHP 5 >= 5.5.0, PHP 7, PHP 8)
array_column — 返回数组中指定的一列
array_column ( array $input
, mixed $column_key
, mixed $index_key
= null ) : array
array_column() 返回input
数组中键值为column_key
的列, 如果指定了可选参数index_key
,那么input
数组中的这一列的值将作为返回数组中对应值的键。
参数:
input
需要取出数组列的多维数组。 如果提供的是包含一组对象的数组,只有 public 属性会被直接取出。 为了也能取出 private 和 protected 属性,类必须实现 __get() 和 __isset() 魔术方法。
column_key
需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键,也可以是属性名。 也可以是null
,此时将返回整个数组(配合index_key
参数来重置数组键的时候,非常管用)
index_key
作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。
返回值:
从多维数组中返回单列数组。
<?php
$arr = [
[
'id' => 1,
'name' => 'a'
],[
'id' => 2,
'name' => 'b',
], [
'id' => 4,
'name' => 'c'
], [
'id' => 3,
'name' => 'd'
]
];
print_r(array_column($arr,'name'));
//运行结果:Array ( [0] => a [1] => b [2] => c [3] => d )
print_r(array_column($arr,'name','id'));
//运行结果:Array ( [1] => a [2] => b [4] => c [3] => d )
print_r(array_column($arr, null, 'name'));
//运行结果:Array ( [a] => Array ( [id] => 1 [name] => a ) [b] => Array ( [id] => 2 [name] => b ) [c] => Array ( [id] => 4 [name] => c ) [d] => Array ( [id] => 3 [name] => d ) )