美文网首页
兼容低于PHP5.5的array_column函数

兼容低于PHP5.5的array_column函数

作者: EwanRenton | 来源:发表于2018-07-26 16:37 被阅读0次

layout: post
title: "兼容低于PHP5.5的array_column函数"
date: 2016-08-05 23:13:46 +0800
comments: true
categories: [php]


array_column 用于获取二维数组中的元素(PHP 5.5新增函数),但我们有时候需要在低版本的PHP环境中使用…


    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;
      }
    }

相关文章

网友评论

      本文标题:兼容低于PHP5.5的array_column函数

      本文链接:https://www.haomeiwen.com/subject/ziibmftx.html