自己写的兼容低于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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
php+mysql分页代码详解
Mar 27 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
php购物网站支付paypal使用方法
Nov 28 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
Oct 03 PHP
php数据库备份还原类分享
Mar 20 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
php实现简单的MVC框架实例
Sep 23 PHP
php实现面包屑导航例子分享
Dec 19 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
thinkphp5实现微信扫码支付
Dec 23 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
dedecms模版制作使用方法
2007/04/03 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
Python subprocess模块学习总结
2014/03/13 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
numpy基础教程之np.linalg
2019/02/12 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
django配置app中的静态文件步骤
2020/03/27 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
中学生操行评语大全
2014/04/24 职场文书
工地安全生产标语
2014/06/06 职场文书
培训班开班主持词
2015/07/02 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
关于Redis的主从复制及哨兵问题
2022/06/16 Redis