array_map()与array_shift()搭配使用 PK array_column()函数
array_map()与arra_shift()搭配使用,还是来看例子吧,比较直观一点
1 <?php 2 $user = array( 3 0 => array( 4 'name' => '张三', 5 'id' => 1, 6 'email' => 'zhangsan@sina.com', 7 ), 8 7 => array( 9 'name' => '李四', 10 'id' => 2, 11 'email' => 'lisi@163.com', 12 ), 13 9 => array( 14 'name' => '王五', 15 'id' => 5, 16 'email' => '10000@qq.com', 17 ) 18 ); 19 $ids = array(); 20 $ids = array_map('array_shift', $user); 21 echo "<pre>"; 22 print_r($ids); 23 echo "</pre>";
实现效果:
接下来我们看一个更加强大的函数:array_column()
array_column — 返回数组中指定的一列 (PHP 5 >= 5.5.0)PHP的版本必须是5.5.0或者以上
说明:
array array_column ( array $input , mixed $column_key [, mixed $index_key ] )
array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。
参数:
input:
需要取出数组列的多维数组(或结果集)
column_key:
需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。 也可以是NULL,此时将返回整个数组(配合index_key参数来重置数组键的时候,非常管用)
index_key:
作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。
返回值
从多维数组中返回单列数组。
来看例子:
1 <?php 2 $records = array( 3 array( 4 'id' => 2135, 5 'first_name' => 'John', 6 'last_name' => 'Doe', 7 ), 8 array( 9 'id' => 3245, 10 'first_name' => 'Sally', 11 'last_name' => 'Smith', 12 ), 13 array( 14 'id' => 5342, 15 'first_name' => 'Jane', 16 'last_name' => 'Jones', 17 ), 18 array( 19 'id' => 5623, 20 'first_name' => 'Peter', 21 'last_name' => 'Doe', 22 ) 23 ); 24 $first_names = array_column($records, 'first_name'); 25 echo "<pre>"; 26 print_r($first_names); 27 echo "</pre>";
结果为:
Example #2 从结果集中总取出last names列,用相应的id作为键值
1 <?php 2 // Using the $records array from Example #1 3 $last_names = array_column($records, 'last_name', 'id'); 4 print_r($last_names); 5 ?>
结果为: