自己写的兼容低于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 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
怎样才能成为PHP高手?学会“懒惰”的编程
Dec 05 PHP
PHP UTF8编码内的繁简转换类
Jul 20 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
PHP数组相关函数汇总
Mar 24 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 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 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
Python、Javascript中的闭包比较
2015/02/04 Python
python实现识别相似图片小结
2016/02/22 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
学习十八大报告感言
2014/02/28 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
2014年公司工作总结
2014/11/22 职场文书
高中家长意见怎么写
2015/06/03 职场文书
高考1977观后感
2015/06/04 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python
python游戏开发Pygame框架
2022/04/22 Python