1. 介绍
PHP中的array_column()函数是一个非常实用的函数,它可以从多维数组中获取一个列的值,返回一个由指定列组成的数组。
2. 语法
array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
2.1 参数说明
input:必需,原始的多维数组。
column_key:必需,需要被返回的列,可以是数组中的一个索引数字或者一个字符串键值。
index_key:可选,作为返回数组中的索引/键值的列,它可以是数组中的一个索引数字或者一个字符串键值。如果省略,则返回的数组元素将使用从0开始的数字索引。
3. 示例
下面是一个使用array_column()函数的简单示例,它会从一个多维数组中获取一个列的值:
// 假设我们有一个数组,保存了一组学生信息
$students = array(
array(
'id' => 1,
'name' => 'Tom',
'age' => 18,
'grade' => 'A'
),
array(
'id' => 2,
'name' => 'Jerry',
'age' => 19,
'grade' => 'B'
),
array(
'id' => 3,
'name' => 'Bob',
'age' => 20,
'grade' => 'C'
),
);
// 获取所有学生的名称
$names = array_column($students, 'name');
// 输出结果
print_r($names);
输出结果如下所示:
Array
(
[0] => Tom
[1] => Jerry
[2] => Bob
)
3.1 获取指定列的值
如果我们只想获取某一列的数据,可以使用以下代码:
// 获取学生的分数
$scores = array_column($students, 'grade');
// 输出结果
print_r($scores);
输出结果如下所示:
Array
(
[0] => A
[1] => B
[2] => C
)
3.2 指定键的值作为返回数组的索引/键值
当我们需要将一个列的值作为返回数组的索引/键值时,可以使用index_key参数。例如,以下代码将使用学生的名称作为返回数组的索引/键值:
// 获取所有学生的名称,并将名称作为返回数组的键
$names = array_column($students, 'name', 'id');
// 输出结果
print_r($names);
输出结果如下所示:
Array
(
[1] => Tom
[2] => Jerry
[3] => Bob
)
4. 总结
array_column()函数是一个非常实用的函数,它可以从多维数组中获取一个列的值。在我们遇到类似的问题时,可以使用这个函数来简化我们的代码。在使用时需要注意,需要获取的列必须存在,并且index_key参数要么是null,要么是一个键存在于input数组中。