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)
}
posted @ 2015-12-04 10:33  KoMiles  阅读(1234)  评论(0编辑  收藏  举报