PHP 5.5新增array_column()数组函数,如果需要在低版本的PHP环境中使用,是不行的。本文介绍如何实现兼容低于PHP 5.5版本的array_column()函数..直接上代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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;
}
}
|