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


Posted in PHP onOctober 24, 2014

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 相关文章推荐
php 随机排序广告的实现代码
May 09 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
php操作mysqli(示例代码)
Oct 28 PHP
php实现的短网址算法分享
Jun 20 PHP
php判断用户是否手机访问代码
Jun 08 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
Thinkphp5.0框架视图view的模板布局用法分析
Oct 12 PHP
PHP中soap的用法实例
Oct 24 #PHP
php中socket的用法详解
Oct 24 #PHP
PHP利用header跳转失效的解决方法
Oct 24 #PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 #PHP
php cookie名使用点号(句号)会被转换
Oct 23 #PHP
php格式化时间戳显示友好的时间实现思路及代码
Oct 23 #PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 #PHP
You might like
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
简单实现PHP留言板功能
2016/12/21 PHP
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
2015/09/10 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
Vue 实现简易多行滚动"弹幕"效果
2020/01/02 Javascript
python self,cls,decorator的理解
2009/07/13 Python
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
Python txt文件如何转换成字典
2020/11/03 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
StubHub德国:购买和出售门票
2017/09/06 全球购物
服装设计师求职信
2014/06/04 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
科技工作者先进事迹
2014/08/16 职场文书
基层党支部承诺书
2015/04/30 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
责任书格式
2019/04/18 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js