php5.5新数组函数array_column使用
2015-01-24信息快讯网
array_column 用于获取二维数组中的元素(PHP 5 >= 5.5.0),但我们有时候需要在低版本中使用,那么就可以使用下面的代码即可
PHP5.5发布了,其中增加了一个新的数组函数array_column,感觉不错的!但是低版本PHP要使用,得自己实现:
参考地址:https://wiki.php.net/rfc/array_column
if(!function_exists('array_column')){ function array_column($input, $columnKey, $indexKey=null){ $columnKeyIsNumber = (is_numeric($columnKey)) ? true : false; $indexKeyIsNull = (is_null($indexKey)) ? true : false; $indexKeyIsNumber = (is_numeric($indexKey)) ? true : false; $result = array(); foreach((array)$input as $key=>$row){ if($columnKeyIsNumber){ $tmp = array_slice($row, $columnKey, 1); $tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null; }else{ $tmp = isset($row[$columnKey]) ? $row[$columnKey] : null; } if(!$indexKeyIsNull){ if($indexKeyIsNumber){ $key = array_slice($row, $indexKey, 1); $key = (is_array($key) && !empty($key)) ? current($key) : null; $key = is_null($key) ? 0 : $key; }else{ $key = isset($row[$indexKey]) ? $row[$indexKey] : 0; } } $result[$key] = $tmp; } return $result; } } // 使用例子 $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' ) ); $firstNames = array_column($records, 'first_name'); print_r($firstNames); /* Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter ) */ $records = array( array(1, 'John', 'Doe'), array(2, 'Sally', 'Smith'), array(3, 'Jane', 'Jones') ); $lastNames = array_column($records, 2); print_r($lastNames); /* Array ( [0] => Doe [1] => Smith [2] => Jones ) */ $mismatchedColumns = array( array( 'a' => 'foo', 'b' => 'bar', 'e' => 'baz' ), array( 'a' => 'qux', 'c' => 'quux', 'd' => 'corge' ), array( 'a' => 'grault', 'b' => 'garply', 'e' => 'waldo' ), ); $foo = array_column($mismatchedColumns, 'a', 'b'); print_r($foo); /* Array ( [bar] => foo [0] => qux [garply] => grault ) */
array_column 用于获取二维数组中的元素(PHP 5 >= 5.5.0)
<?php // Array representing a possible record set returned from a database $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 )<?php // Using the $records array from Example #1 $last_names = array_column($records, 'last_name', 'id'); print_r($last_names); ?> Array ( [2135] => Doe [3245] => Smith [5342] => Jones [5623] => Doe )
PHP扩展模块Pecl、Pear以及Perl的区别
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
php检测useragent版本示例
php的declare控制符和ticks教程(附示例)
php的array数组和使用实例简明教程(容易理解)
zf框架的校验器InArray使用示例
解决Codeigniter不能上传rar和zip压缩包问题
PHP 函数call_user_func和call_user_func_array用法详解
分享下页面关键字抓取components.arrow.com站点代码
php二维数组排序方法(array_multisort usort)
关于PHP语言构造器介绍
PHP 关于访问控制的和运算符优先级介绍
PHP session_start()问题解疑(详细介绍)
如何解决CI框架的Disallowed Key Characters错误提示
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Smarty foreach控制循环次数的实现详解
解析array splice的移除数组中指定键的值,返回一个新的数组
php selectradio和checkbox默认选择的实现方法详解
zend Framework中的Layout(模块化得布局)详解
解析在zend Farmework下如何创立一个FORM表单
解析zend Framework如何自动加载类
解析PHP函数array_flip()在重复数组元素删除中的作用
通过PHP current函数获取未知字符键名数组第一个元素的值
探讨:array2xml和xml2array以及xml与array的互相转化
解析php中array_merge与array+array的区别
PHP array_multisort() 函数的深入解析