array_column()
是 PHP 中的一个函数,用于返回数组中指定的一列,这个函数特别适用于操作二维数组,下面详细解释这个函数的用法:
语法
array array_column ( array $input , mixed $column_key [, mixed $index_key ] )
参数
$input
: 必需,规定要返回其中一列的输入数组。
$column_key
: 可选,需要返回的列的数字或字符串索引,可以是 null。
$index_key
: 可选,用作返回数组的索引/键的列的数字或字符串索引,可以是 null。
返回值
返回包含有指定列的数组,如果索引键也指定了,那么结果数组将使用该索引/键作为其索引/键。
示例
假设我们有一个二维数组,如下:
$records = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ), array( 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ), array( 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', ) );
我们可以使用array_column()
函数来获取所有的first_name
:
$first_names = array_column($records, 'first_name'); print_r($first_names);
这将输出:
Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter )
如果我们还想用id
作为新数组的键,我们可以这样做:
$first_names = array_column($records, 'first_name', 'id'); print_r($first_names);
这将输出:
Array ( [2135] => John [3245] => Sally [5342] => Jane [5623] => Peter )
array_column()
是一个在 PHP 中用于从数组中取出一列的函数,下面我将描述这个函数的用法,并以介绍的形式展示。
函数原型:
array array_column ( array $input , mixed $column_key [, mixed $index_key ] )
参数说明:
参数名 | 描述 | 是否必须 |
$input | 一个多维数组,或者一个包含数组的数组(例如来自数据库查询的结果)。 | 是 |
$column_key | 需要返回列的键名,可以是整数(表示数组索引),字符串(表示对象的属性),或者 null。 | 是 |
$index_key | 用来作为返回数组的索引/键名的列的键名,可以是整数(表示数组索引),字符串(表示对象的属性),或者 null。 | 否 |
返回值:
返回一个包含指定列的数组。
例子:
$records = [ ['id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe'], ['id' => 3245, 'first_name' => 'Jane', 'last_name' => 'Doe'], ['id' => 5342, 'first_name' => 'Emil', 'last_name' => 'Zatopek'] ]; $first_names = array_column($records, 'first_name'); $last_names_by_id = array_column($records, 'last_name', 'id');
在上面的例子中:
$first_names
将是['John', 'Jane', 'Emil']
。
$last_names_by_id
将是['2135' => 'Doe', '3245' => 'Doe', '5342' => 'Zatopek']
。
注意:array_column()
函数在 PHP 5.5.0 版本以上可用,如果你使用的是更早的版本,你需要自己实现这个功能或者使用 polyfill。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/690084.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复