自己写的兼容低于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模板类代码
Sep 07 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
Jan 07 PHP
详解PHP序列化反序列化的方法
Oct 27 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
Laravel中9个不经常用的小技巧汇总
Apr 16 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 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调用wsdl文件类型的接口代码分享
2014/11/19 PHP
php实现URL加密解密的方法
2016/11/17 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
永不消失的title提示代码
2007/02/15 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
js动态为代码着色显示行号
2013/05/29 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
关于Python 3中print函数的换行详解
2017/08/08 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
python3中rank函数的用法
2019/11/27 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
学校办公室主任职责
2013/12/27 职场文书
基层工作经验证明样本
2014/11/16 职场文书
数学教师个人总结
2015/02/06 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书