源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

php5.5新数组函数array_column使用

  • 时间:2021-01-31 15:21 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php5.5新数组函数array_column使用
PHP5.5发布了,其中增加了一个新的数组函数array_column,感觉不错的!但是低版本PHP要使用,得自己实现: 参考地址:[url=https://wiki.php.net/rfc/array_column]https://wiki.php.net/rfc/array_column[/url]
[u]复制代码[/u] 代码如下:
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)
[u]复制代码[/u] 代码如下:
<?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 )
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部