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)
}
千里之行,始于足下。改变现在,就是改变未来。改变未来,从现在开始。