PHP array_column() 函数返回输入数组中单个列的值,您可以在其中指定带有列键的列。
在本教程中,我们将学习 array_column() 的语法,以及如何从二维数组中获取特定列,涵盖基于数组类型和参数的不同场景。
array_column()语法
PHP array_column() 函数的语法是
array_column(array,column_key,index_key);
参数 | 描述 |
---|---|
array | 必需。指定要使用的多维数组(记录集)。 |
column_key | 必需。需要返回值的列。可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。该参数也可以是 NULL,此时将返回整个数组(配合index_key 参数来重置数组键的时候,非常管用)。 |
index_key | 可选。作为返回数组的索引/键的列。 |
返回值
array_column() 函数返回输入数组的单个列,其中使用column_key选择该列。如果提供了index_key,则此index_key的值将作为索引或键应用于返回的相应列值。
获取数组中单列的值
在本例中,我们将采用一个包含键值对的二维数组,并获得由键“last_name”标识的单个列的值。
<?php $input = array( array( 'id' => 42, 'first_name' => 'A', 'last_name' => 'B', ), array( 'id' => 56, 'first_name' => 'X', 'last_name' => 'Y', ), array( 'id' => 79, 'first_name' => 'P', 'last_name' => 'Q', ) ); $column_key = 'last_name'; $column_values = array_column($input, $column_key); print_r($column_values) ?>
执行结果
Array ( [0] => B [1] => Y [2] => Q )
我们可以从这个输出中得出两个结果。
与键'c'指定的列对应的行中的值作为数组返回。
这些值的索引设置为默认值,就像在索引数组中一样。
获取索引数组中单个列的值
<?php $input = array( array(42, 'A', 'B',), array(56, 'X', 'Y',), array(79, 'P', 'Q',) ); $column_key = 1; $column_values = array_column($input, $column_key); print_r($column_values) ?>
执行结果
Array ( [0] => A [1] => X [2] => P )
使用给定的索引键获取数组中单列的值
在这个例子中,我们将采用一个二维数组,其中内部数组是用键值对定义的,与前面的例子相同,然后用 key 获取列值'last_name'。
我们将通过将索引数组作为第三个参数传递给 array_column() 函数来将索引应用于此返回值。
<?php $input = array( array( 'id' => 42, 'first_name' => 'A', 'last_name' => 'B', ), array( 'id' => 56, 'first_name' => 'X', 'last_name' => 'Y', ), array( 'id' => 79, 'first_name' => 'P', 'last_name' => 'Q', ) ); $column_key = 'last_name'; $index_key = 'id'; $column_values = array_column($input, $column_key, $index_key); print_r($column_values) ?>
执行结果
Array ( [42] => B [56] => Y [79] => Q )
我们已将列值的索引指定为'id'。
因此,对于第一列值 ,'B'索引是该'id'数组中键的值,即42。
结语
在本篇教程中,我们学习了如何使用PHP Array array_column()函数从给定的输入数组中提取单个列。