让array_column()函数兼容低版本PHP
2018-02-01 11:43
489 查看
array_column 用于获取二维数组中的元素(PHP 5.5新增函数),但我们有时候需要在低版本的PHP环境中使用,只要做一个小的改造即可...
自定义一个函数i_array_column(),写到TP的Common中~~
function i_array_column($input, $columnKey, $indexKey=null){
if(!function_exists('array_column')){
$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;
}else{
return array_column($input, $columnKey, $indexKey);
}
}
复制代码
在需要用到array_column()函数的地方,只要调用i_array_column()即可,在低版本的PHP环境中,同样可以享受array_column()带来的便捷与快感~~
自定义一个函数i_array_column(),写到TP的Common中~~
function i_array_column($input, $columnKey, $indexKey=null){
if(!function_exists('array_column')){
$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;
}else{
return array_column($input, $columnKey, $indexKey);
}
}
复制代码
在需要用到array_column()函数的地方,只要调用i_array_column()即可,在低版本的PHP环境中,同样可以享受array_column()带来的便捷与快感~~
相关文章推荐
- 让array_column()函数兼容低版本PHP
- 自己写的兼容低于PHP 5.5版本的array_column()函数
- 自己写的兼容低于PHP 5.5版本的array_column()函数
- array_column php 函数 自定义版本 php_version<5.5
- php array_column()函数 php低版本兼容处理
- array_column()函数兼容低版本
- array_column php 函数
- php5.5新数组函数array_column使用
- 实现PHP5.5版本的array_column,并扩展取多列的功能
- 高版本兼容低版本array_column自己实现
- PHP常用数组函数系列--array_column
- php5.5新数组函数array_column应用实例分享
- php数组函数分析--array_column
- 兼容低版本的array_column
- php5.5新函数array_column
- php5.5新数组函数array_column使用
- 获取二维数组中的元素(PHP 5.5新增函数),兼容低版本处理
- 获取二维数组中的元素(PHP 5.5新增函数),兼容低版本处理
- php-Arrays 函数-array_flip-交换数组中键和值
- PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题