自己写的兼容低于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 strtotime函数详解
Dec 18 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
May 04 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
PHP自动生成表单代码分享
Jun 19 PHP
php实现面包屑导航例子分享
Dec 19 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
PHP函数rtrim()使用中的怪异现象分析
Feb 24 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 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
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
php利用事务处理转账问题
2015/04/22 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
遗传算法之Python实现代码
2017/10/10 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
傲盾软件面试题
2015/08/17 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
活动总结怎么写
2014/04/28 职场文书
村级换届选举方案
2014/05/10 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
课外活动总结
2015/02/04 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
圣诞晚会主持词
2015/07/01 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
手写实现JS中的new
2021/11/07 Javascript
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS