自己写的兼容低于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 相关文章推荐
打造计数器DIY三步曲(上)
Oct 09 PHP
php str_replace的替换漏洞
Mar 15 PHP
PHP 5.0对象模型深度探索之属性和方法
Mar 27 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
PHP针对redis常用操作实例详解
Aug 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中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
实例解析php的数据类型
2018/10/24 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
python正则分组的应用
2013/11/10 Python
python采用getopt解析命令行输入参数实例
2014/09/30 Python
线程和进程的区别及Python代码实例
2015/02/04 Python
Python中random模块用法实例分析
2015/05/19 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
python贪吃蛇游戏代码
2020/04/18 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
岗位职责的定义
2013/11/10 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
工作会议主持词
2014/03/17 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
授权委托书范文
2014/07/31 职场文书
入党群众意见范文
2015/06/02 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android