自己写的兼容低于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 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 PHP
解析php中获取系统信息的方法
Jun 25 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
php遍历目录与文件夹的多种方法详解
Nov 14 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
php封装的mongodb操作类代码
Aug 06 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 PHP
php实现微信支付之退款功能
May 30 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新手上路(十一)
2006/10/09 PHP
linux下为php添加curl扩展的方法
2011/07/29 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
php7性能提升的原因详解
2019/10/13 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
js不完美解决click和dblclick事件冲突问题
2012/07/16 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
JavaScript闭包详解
2015/02/02 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python3 与python2 异常处理的区别与联系
2016/06/19 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
python全栈知识点总结
2019/07/01 Python
资生堂美国官网:Shiseido美国
2016/09/02 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
golang中的struct操作
2021/11/11 Golang