自己写的兼容低于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中与数组相关的函数
Mar 22 PHP
PHP 魔术函数使用说明
May 14 PHP
php后门URL的防范
Nov 12 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
php实现的农历算法实例
Aug 11 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
PHP使用数组依次替换字符串中匹配项
Jan 08 PHP
Symfony核心类概述
Mar 17 PHP
PHP书写格式详解(必看)
May 23 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 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遍历目录viewDir函数
2009/12/15 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
浅谈PHP的反射API
2017/02/26 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
js getElementsByTagName的简写方式
2010/06/27 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
canvas时钟效果
2017/02/16 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
Python之web模板应用
2017/12/26 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
大学生的网络创业计划书
2013/12/26 职场文书
社会学专业求职信
2014/02/24 职场文书
办公室副主任职责范本
2014/03/08 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
入党自荐书范文
2015/03/05 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
学生安全责任协议书
2016/03/22 职场文书
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
Python实现照片卡通化
2021/12/06 Python