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)
    }

你可能感兴趣的:(php数组函数分析--array_column)