讓array_column()函數(shù)兼容低版本PHP及3.2版本的thinkphp

上一篇文章中提到了array_column函數(shù),作為終極函數(shù) thinkphp3.2居然不支持,so找了一下解決辦法


array_column 用于獲取二維數(shù)組中的元素(PHP 5.5新增函數(shù)),但我們有時候需要在低版本的PHP環(huán)境中使用,只要做一個小的改造即可...

自定義一個函數(shù)i_array_column(),寫到TP的Common中~~


functioni_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)$inputas$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{

returnarray_column($input,$columnKey,$indexKey);

}

}


在需要用到array_column()函數(shù)的地方,只要調(diào)用i_array_column()即可,在低版本的PHP環(huán)境中,同樣可以享受array_column()帶來的便捷與快感

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容