zoukankan      html  css  js  c++  java
  • php数组函数分析--array_column

    array_column

    官方地址:array_column

    • array_column 只能在 PHP版本5.5以上的运行,5.3是不支持这个函数的。如果5.3使用会报:
    Fatal error: Call to undefined function array_column()
    
    • array_column如何使用?
    • 举下面几个例子:
    • 二维数组中提取出某一列,成为一维数组。
    $a = array(array('discussion_id' => 123456),array('discussion_id' => 27495220), array('discussion_id' => 27495087));      
    $a = array_column($a,'discussion_id');
    var_dump($a);
    

    运行结果:

    array(3) {
      [0]=>
      int(123456)
      [1]=>
      int(27495220)
      [2]=>
      int(27495087)
    }
    
    • 二维数组中,某一列作为下标,某一列作为值,成为一维数组。
    $b = array(array('id'=>345,'name'=>'小王','address'=>'beijing'),array('id'=>298,'name'=>'小张','address'=>'shanghai'),array('id'=>390,'name'=>'小明','address'=>'guangzhou'));
    $b = array_column($b,'name','id');
    var_dump($b);
    

    运行结果:

    array(3) {
      [345]=>
      string(6) "小王"
      [298]=>
      string(6) "小张"
      [390]=>
      string(6) "小明"
    }
    

    如果web运行环境的PHP版本小于5.5,怎么提取二维数组的某一列作为一位数组呢?

    • 看下面这个例子,根据数组中的下标重新生成数组:
        public static function getNewArrByElement($list, $element) {
            if(!isset($list) || !is_array($list) || empty($list)) {
                return array();
            }
            if(!isset($element) || empty($element)) {
                return array();
            }
            $j = 0;
            $result = array();
            for($i = 0; $i < count($list); $i++) {
                if(isset($list [$i] [$element])) {
                    $result [$j] = $list [$i] [$element];
                    $j++;
                } else {
                    return array();
                }
            }
            return $result;
        }
    $a = array(array('discussion_id' => 123456),array('discussion_id' => 27495220), array('discussion_id' => 27495087));  
    $a = CommonUtil::getNewArrByElement($a,'discussion_id');
    

    运行结果:

    array(3) {
      [0]=>
      int(123456)
      [1]=>
      int(27495220)
      [2]=>
      int(27495087)
    }
    
  • 相关阅读:
    ubuntu下内核源码树的建立
    删除ubuntu旧版本内核
    设置ubuntu12.04桌面版开机进入命令行模式
    MFC学习笔记(一)向模态对话框传递数据
    redis 映射数据结构粗略
    redis入门
    mybatis总结
    mybatis--mapper配置总结
    mybatis-初步使用
    maven-plugins说明
  • 原文地址:https://www.cnblogs.com/wangkongming/p/5018586.html
Copyright © 2011-2022 走看看