熟练的数组操作可以有效提升代码效率,以下是一些实例。 ## 1、array_values() 返回包含数组中所有键值的数组,不保留键名。 ## 2、array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。 ## 3、array_unique() 去重,保留键名,重复值只保留第一个 ## 4、array_merge() 把两个或多个数组合并为一个数组,相同键名的会被后边的覆盖。 ## 5、array_filter() 去除数组中的空值,包括null、‘’、false、0等。 ## 6、array_sclice() 从数组中取出某一段值作为一个数组 一个简单的应用场景就是,取出来的数据需要分两段来显示,两端的样式又不相同 ## 7、array_chunk() 将一个数组分割成几个相等数量元素的数组,返回一个二维数组 如: $a = array('1','2','3','4'); var_dump(array_chunk($a,2)); 结果为: array('0'=>array('1','2'),'1'=>array('3','4')); ## 8、array_shift() 取出数组中第一个元素值 如: echo array_shift(array('1')); 结果为 1 ## 9、array_column() $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'email' => 'zhangsan@sina.com', ), 1 => array( 'id' => 2, 'name' => '李四', 'email' => 'lisi@163.com', ), 2 => array( 'id' => 5, 'name' => '王五', 'email' => '10000@qq.com', ), ...... ); 现在有这样的两个需求: 1)获取索引"id"的集合,并且保存为一个一位数组,即得到 array(1,2,5) 代码如下: $ids = array(); $ids = array_map('array_shift', $user); 还有一种方案需要 PHP 版本 >= 5.5.0),使用 `array_column` 函数 代码如下: $ids = array(); $ids = array_column($user, 'id'); 这样的话,效率会更高了。 2)获取索引"name"的集合,并且保存为一个一位数组,即得到 array('张三','李四',‘王五') 代码如下: $names = array(); $names = array_reduce($user, create_function( '$v,$w', '$v[$w["id"]]=$w["name"]; return $v;' ) ); 得到结果: array( 1 => '张三', 2 => '李四', 5 => '王五', ); ## 10、array_search 从一个数组中搜索指定的值,返回键值,只能精确匹配,只匹配一个。例如: array_search('你好',array('0'=>'123','1'=>'你好吗','2'=>'你好')); 结果: 2