自己写的兼容低于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(视频)Http下载
Dec 12 PHP
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
关于php mvc开发模式的感想
Jun 28 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
php开发工具有哪五款
Nov 09 PHP
php字符集转换
Jan 23 PHP
PHP中Trait及其应用详解
Feb 14 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 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
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
快速入门Vue
2016/12/19 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
Python自动扫雷实现方法
2015/07/25 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
中软国际Java程序员笔试题
2014/07/19 面试题
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
2014年应届大学生自我评价
2014/01/09 职场文书
20岁生日感言
2014/01/13 职场文书
新三好学生主要事迹
2014/01/23 职场文书
八一演出活动方案
2014/02/03 职场文书
年会搞笑主持词
2014/03/27 职场文书
公司经理聘任书
2014/03/29 职场文书
门市房租房协议书
2014/12/04 职场文书
工作建议书范文
2019/07/08 职场文书