您当前的位置: 首页 > 网站编程 > PHP教程 > php5.5新数组函数array_column使用

php5.5新数组函数array_column使用

作者:不详 来源:网络 发布时间: 2014-08-17 23:01 点击:
PHP5.5发布了,其中增加了一个新的数组函数array_column,感觉不错的!但是低版本PHP要使用,得自己实现: 参考地址:https://wiki.php.net/rfc/array_column 复制代码 代码如下: if(!function_exists('array_column')){ function array_column($input, $columnKey, $i

php5.5新数组函数array_column使用

  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

  )
分享到:
本文"php5.5新数组函数array_column使用"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4