最近在学习使用array_column函数,发现一个比较实用的用法。很多时候,我们在获取的二维数组都是索引数组,在某些时刻使用时并不方便,最好是能够以某个字段的值作为键名,这样就能更好的使用了。绝大多数人都是使用foreach进行遍历,然后创建一个新的数组,以遍历中的某个字段值为键名,现在有个更简单的方法实现这个功能
-
$array =
array(
-
array(
'id'=>
'3',
'name'=>
'tom'),
-
array(
'id'=>
'5',
'name'=>
'jerry'),
-
array(
'id'=>
'24',
'name'=>
'spike')
-
);
-
-
$newArray1 = array_column($array,
NULL,
'id');
-
var_dump($newArray1);
-
//结果
-
array(
-
'3'=>
array(
'id'=>
'3',
'name'=>
'tom'),
-
'5'=>
array(
'id'=>
'5',
'name'=>
'jerry'),
-
'24'=>
array(
'id'=>
'24',
'name'=>
'spike')
-
)
-
-
$newArray2 = array_column($array,
NULL,
'name');
-
var_dump($newArray2);
-
//结果
-
array(
-
'tom'=>
array(
'id'=>
'3',
'name'=>
'tom'),
-
'jerry'=>
array(
'id'=>
'5',
'name'=>
'jerry'),
-
'spike'=>
array(
'id'=>
'24',
'name'=>
'spike')
-
)
最近在学习使用array_column函数,发现一个比较实用的用法。很多时候,我们在获取的二维数组都是索引数组,在某些时刻使用时并不方便,最好是能够以某个字段的值作为键名,这样就能更好的使用了。绝大多数人都是使用foreach进行遍历,然后创建一个新的数组,以遍历中的某个字段值为键名,现在有个更简单的方法实现这个功能
-
$array =
array(
-
array(
'id'=>
'3',
'name'=>
'tom'),
-
array(
'id'=>
'5',
'name'=>
'jerry'),
-
array(
'id'=>
'24',
'name'=>
'spike')
-
);
-
-
$newArray1 = array_column($array,
NULL,
'id');
-
var_dump($newArray1);
-
//结果
-
array(
-
'3'=>
array(
'id'=>
'3',
'name'=>
'tom'),
-
'5'=>
array(
'id'=>
'5',
'name'=>
'jerry'),
-
'24'=>
array(
'id'=>
'24',
'name'=>
'spike')
-
)
-
-
$newArray2 = array_column($array,
NULL,
'name');
-
var_dump($newArray2);
-
//结果
-
array(
-
'tom'=>
array(
'id'=>
'3',
'name'=>
'tom'),
-
'jerry'=>
array(
'id'=>
'5',
'name'=>
'jerry'),
-
'spike'=>
array(
'id'=>
'24',
'name'=>
'spike')
-
)