在PHP中,数组函数 array_column() 返回多维数组中指定的一列。
函数语法:
array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ) : array
函数参数说明:
| 参数 | 描述 |
|---|---|
| array | 必需。指定要使用的多维数组(记录集)。 |
| column_key | 必需。需要返回值的列。可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。该参数也可以是 NULL,此时将返回整个数组(配合index_key 参数来重置数组键的时候,非常管用)。 |
| index_key | 可选。作为返回数组的索引/键的列。 |
array_column() 函数返回input多维数组中键值为column_key的列,返回值为单列数组。 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。
举例1,返回数组中指定的列:
<?php // 定义数组 $arr = [['name' => 'zhangsan', 'age' => 100, 'id' => 10], ['name' => 'lisi', 'age' => '10', 'id' => 11]];// 返回数组中指定的列 $resArr = array_column($arr, 'name');// 输出原数组 var_dump($arr); // 输出结果数组 var_dump($resArr);
以上代码输出如下(列索引默认为数字):
array (size=2)0 => array (size=3)'name' => string 'zhangsan' (length=8)'age' => int 100'id' => int 101 => array (size=3)'name' => string 'lisi' (length=4)'age' => string '10' (length=2)'id' => int 11array (size=2)0 => string 'zhangsan' (length=8)1 => string 'lisi' (length=4)
举例2,返回数组中指定的列,指定返回数组的索引列:
<?php // 定义数组 $arr = [['name' => 'zhangsan', 'age' => 100, 'id' => 10], ['name' => 'lisi', 'age' => '10', 'id' => 11]];// 返回数组中指定的列 $resArr = array_column($arr, 'name', 'id');// 输出原数组 var_dump($arr); // 输出结果数组 var_dump($resArr);
以上代码输出如下(列索引使用列id的值):
array (size=2)0 => array (size=3)'name' => string 'zhangsan' (length=8)'age' => int 100'id' => int 101 => array (size=3)'name' => string 'lisi' (length=4)'age' => string '10' (length=2)'id' => int 11array (size=2)10 => string 'zhangsan' (length=8)11 => string 'lisi' (length=4)
注意:
1. 此函数不改变原数组。