自己写的兼容低于PHP 5.5版本的array_column()函数

 更新时间:2014年10月24日 10:47:58   投稿:junjie  
这篇文章主要介绍了自己写的兼容低于PHP 5.5版本的array_column()函数,array_column是PHP 5.5新增函数,有时在低版本中也可能要用到,需要的朋友可以参考下

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

相关文章

  • php中模拟POST传递数据的两种方法分享

    php中模拟POST传递数据的两种方法分享

    php中模拟POST传递数据的两种方法分享,有时候需要模拟提交数据方便采集,需要的朋友可以参考下。
    2011-09-09
  • 修改Zend引擎实现PHP源码加密的原理及实践

    修改Zend引擎实现PHP源码加密的原理及实践

    来源:phphot PHP文件的源码都是明文,这对于某些商业用途来说,并不适合。 因此考虑使用加密的手段保护源码。 实在不耐烦等待zend出编译器,而且编译和加密本质上不是一回事儿。自己动手、开始修改。
    2008-04-04
  • JS 网站性能优化笔记

    JS 网站性能优化笔记

    JS 网站性能优化笔记,使用下面的方法有利于提高代码的执行效率。
    2011-05-05
  • 使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT

    使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT

    在有group by的时候,如何统计结果记录的数量?需要的朋友可以参考下。
    2011-04-04
  • php树型类实例

    php树型类实例

    这篇文章主要介绍了php树型类,涉及数据结构与算法中的树结构,实例相对简单易懂,对于学习数据结构有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • PHP获取某个月最大天数(最后一天)的方法

    PHP获取某个月最大天数(最后一天)的方法

    这篇文章主要介绍了PHP获取某个月最大天数(最后一天)的方法,涉及php流程控制及数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP7中新添特性整理

    PHP7中新添特性整理

    在本篇文章里小编给大家整理的是一篇关于PHP7中新添特性的相关内容,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • 浅谈php的优缺点

    浅谈php的优缺点

    本文给大家简单总结了php的10点优点和3个缺点,都是个人对于php开发的一些体悟和总结,有需要的小伙伴可以参考下。
    2015-07-07
  • vs中通过剪切板循环来循环粘贴不同内容

    vs中通过剪切板循环来循环粘贴不同内容

    只要按Ctrl+Shift+V键,就可以在过去剪切或复制到剪切板上的20条内容间进行循环粘贴,太帅了哈哈!
    2011-04-04
  • php 随机排序广告的实现代码

    php 随机排序广告的实现代码

    博客流行在侧边栏放置 4 到 6 个 125x125 的广告, 但一般的摆放顺序存在问题. 如果广告位置被固定, 各个位置的天然关注度肯定是不一样的
    2011-05-05

最新评论