经常会遇到这样的场景。从数据库查询多条结果,返回的是一个索引下标的二维数组结果集;但是根据应用场景,需要把这个二维数组转换为id作为关联索引的数组或的一维数组;
array_column($array,$column_value,$index_key);
$array 需要转换的二维数组;
$column_value 需要返回的某列的键(关联索引/数字索引);值为NULL是返回原数组;
$index_key 可选参数,指定某列作为新数组的键(关联索引/数字索引)
比如:返回二维数组name列:
<?php
$array = [
[
'id'=> 10000,
'name'=> 'Aloo',
'ctime'=> 1520832703
],
[
'id'=> 10002,
'name'=> 'oppa',
'ctime'=> 1520832712
],
];
var_dump(array_column($array,‘name’));
?>
输出结果:
array (size=2)
0 => string 'Aloo' (length=4)
1 => string 'oppa' (length=4)
比如:二维数组使用指定索引key作为下标:
<?php
$array = [
[
'id'=> 10000,
'name'=> 'Aloo',
'ctime'=> 1520832703
],
[
'id'=> 10002,
'name'=> 'oppa',
'ctime'=> 1520832712
],
];
var_dump(array_column($array,null,'id'));
?>
输出结果:
array (size=2)
10000 =>
array (size=3)
'id' => int 10000
'name' => string 'Aloo' (length=4)
'ctime' => int 1520832703
10002 =>
array (size=3)
'id' => int 10002
'name' => string 'oppa' (length=4)
'ctime' => int 1520832712
比如:id作为键,name作为值,返回新的一维数组:
<?php
$array = [
[
'id'=> 10000,
'name'=> 'Aloo',
'ctime'=> 1520832703
],
[
'id'=> 10002,
'name'=> 'oppa',
'ctime'=> 1520832712
],
];
var_dump(array_column($array,‘name’,'id'));
?>
输出结果:
array (size=2)
10000 => string 'Aloo' (length=4)
10002 => string 'oppa' (length=4)
网友评论