php array_column
PHP array_column 函数是 PHP 5.5 版本中新增的函数,它可以从多维数组中返回单列的值。它可以提取多维数组中指定键名的值,并将其作为一个新的一维数组返回。
$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',
)
);
$first_names = array_column($records, ‘first_name’);
print_r($first_names); // Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter )
array_column() 函数有三个必须参数:输入的多维数组、键名、和要返回的列名。如果想要返回多列,可以使用可选参数 index 来指定键名,并将其作为新的一维数组返回。
$records = array(
array(
"id"=>2135,
"first_name"=>"John",
"last_name"=>"Doe",
"email"=>"john@example.com"
),
array(
"id"=>3245,
"first_name"=>"Sally",
"last_name"=>"Smith",
"email"=>"sally@example.com"
), ); $result = array(); $result['ids'] = array_column($records, ‘id’); $result['emails'] = array_column($records, ‘email’); print ""; print "Ids:
"; print "
"; print implode("\n",$result['ids']); print "Emails:
"; print "
"; print implode("\n",$result['emails']);
上面代码中,我们使用了 index 参数来提取 id 和 email 键名对应的值,并将其添加到 result 数组中。最后我们使用 implode() 函数将 result 数组中的值转换成字符串形式输出。
总之,array column() 函数是一个很有用的函数,它能够帮助我们快速在多维数组中提取特定键名对应的值,并将其作为一个新的一位或者多位数组进行返回。
PHP array_column() 函数
PHP array_column() 函数
完整的 PHP Array 参考手册
实例
从记录集中取出 last_name 列:
<?php
// 可能从数据库中返回数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Peter',
'last_name' => 'Griffin',
),
array(
'id' => 4767,
'first_name' => 'Ben',
'last_name' => 'Smith',
),
array(
'id' => 3809,
'first_name' => 'Joe',
'last_name' => 'Doe',
)
);
$last_names =
array_column($a, 'last_name');
print_r($last_names);
?>
输出:
Array
(
[0] => Griffin
[1] => Smith
[2] => Doe
)
定义和用法
array_column() 返回输入数组中某个单一列的值。
语法
array_column(array,column_key,index_key);
参数 |
描述 |
array |
必需。指定要使用的多维数组(记录集)。 |
column_key |
必需。需要返回值的列。可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。该参数也可以是 NULL,此时将返回整个数组(配合index_key 参数来重置数组键的时候,非常管用)。 |
index_key |
可选。作为返回数组的索引/键的列。 |
技术细节
返回值: |
返回一个数组,数组的值为输入数组中某个单一列的值。 |
PHP 版本: |
5.5+ |
更多实例
实例 1
从记录集中取出 last_name 列,用相应的 "id" 列作为键值:
<?php
// 可能从数据库中返回数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Peter',
'last_name' => 'Griffin',
),
array(
'id' => 4767,
'first_name' => 'Ben',
'last_name' => 'Smith',
),
array(
'id' => 3809,
'first_name' => 'Joe',
'last_name' => 'Doe',
)
);
$last_names = array_column($a, 'last_name', 'id');
print_r($last_names);
?>
输出:
Array
(
[5698] => Griffin
[4767] => Smith
[3809] => Doe
)
完整的 PHP Array 参考手册