1. 程式人生 > >讓array_column()函式相容低版本PHP

讓array_column()函式相容低版本PHP

array_column 用於獲取二維陣列中的元素(PHP 5.5新增函式),但我們有時候需要在低版本的PHP環境中使用,只要做一個小的改造即可...
自定義一個函式i_array_column(),寫到TP的Common中~~
  1. function i_array_column($input, $columnKey, $indexKey=null){
  2. if(!function_exists('array_column')){
  3.         $columnKeyIsNumber  =(is_numeric($columnKey))?true:false;
  4.         $indexKeyIsNull            =(is_null($indexKey))?true:false;
  5.         $indexKeyIsNumber     
    =(is_numeric($indexKey))?true:false;
  6.         $result                         = array();
  7. foreach((array)$input as $key=>$row){
  8. if($columnKeyIsNumber){
  9.                 $tmp= array_slice($row, $columnKey,1);
  10.                 $tmp=(is_array($tmp)&&!empty($tmp))?current($tmp):null;
  11. }else{
  12.                 $tmp
    = isset($row[$columnKey])?$row[$columnKey]:null;
  13. }
  14. if(!$indexKeyIsNull){
  15. if($indexKeyIsNumber){
  16.                   $key = array_slice($row, $indexKey,1);
  17.                   $key =(is_array($key)&&!empty($key))?current($key):null;
  18.                   $key = is_null($key)?0:$key;
  19. }else{
  20.                   $key 
    = isset($row[$indexKey])?$row[$indexKey]:0;
  21. }
  22. }
  23.             $result[$key]= $tmp;
  24. }
  25. return $result;
  26. }else{
  27. return array_column($input, $columnKey, $indexKey);
  28. }
  29. }
複製程式碼 在需要用到array_column()函式的地方,只要呼叫i_array_column()即可,在低版本的PHP環境中,同樣可以享受array_column()帶來的便捷與快感~~