自己写的兼容低于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 array_slice函数的使用以及参数详解
Aug 30 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
thinkphp实现分页显示功能
Dec 03 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
phpQuery采集网页实现代码实例
Apr 02 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
2014年高考决心书
2014/03/11 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
技术股东合作协议书
2014/12/02 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
MySQL数据库 任意ip连接方法
2022/05/20 MySQL