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开始填充数组。如果输入的键根本不存在,则完全跟一个参数输入的时候一样

作者 admin

百度广告效果展示