array_column(array,column_key,index_key);
参数
array
必需。规定要使用的多维数组(记录集)。
column_key
必需。需要返回值的列。
可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。
该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。
index_key
可选。用作返回数组的索引/键的列。
$data = [
['id'=>1,'name'=>'A','city'=>'Beijin','like'=>'Red','info'=>''],
['id'=>2,'name'=>'B','city'=>'Shanghai','age'=>20,'info'=>'defualt'],
['id'=>2,'name'=>'C','city'=>'Guangdong','age'=>'30','info'=>'empty']
];
1.传入一个参数,返回二维数组中指定列
$d1 = array_column($data,'id');
print_r($d1);
Array ( [0] => 1 [1] => 2 [2] => 3 )
说明:当输入参数只有一个参数,且指定列都存在的情况下,array_column 函数的左右是取出二维数组的这一列的数据。
2.传入一个参数,指定列不一定存在的情况
$d2 = array_column($data,'age');
print_r($d2);
Array
(
[0] => 20
[1] => 30
)
说明:这中情况,会不不存该列的数据丢弃掉,返回数组的个数相比原来的数据减少了!!!因此,当传入一个参数,所指定的列不存在的情况,array_column将返回一个空数组。
3.传入两个参数,且两个参数对应的列都存在且不重复
$d1 = array_column($data,'id','name');
print_r($d1);
Array
(
[A] => 1
[B] => 2
[C] => 3
)
说明:输出以第二个参数对应列为键,第一个参数对应列为值的关联数组。
4.传入两个参数,对应的列的数据有重复的情况
$d1 = array_column($data,'id','city');
print_r($d1);
Array
(
[Beijin] => 3
[Shanghai] => 2
)
说明:相同键盘,保留最后一次的值。
5.传入两个参数,对应键或者值的列数据不一定存在
$d1 = array_column($data,'age','name');
$d2 = array_column($data,'name','age');
print_r($d1);
print_r($d2);
Array
(
[B] => 20
[C] => 30
)
Array
(
[0] => A
[20] => B
[30] => C
)
说明:如果值不存在,直接丢弃该子数组数据。当键不存在的情况,则以下标为0开始填充数组。如果输入的键根本不存在,则完全跟一个参数输入的时候一样