自己写的兼容低于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&&mysql)一
Oct 09 PHP
实时抓取YAHOO股票报价的代码
Oct 09 PHP
php连接mysql数据库代码
Mar 10 PHP
php 分页原理详解
Aug 21 PHP
PHP实现变色验证码实例
Jan 06 PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
php metaphone()函数的定义和用法
May 15 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 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
php 空格,换行,跳格使用说明
2009/12/18 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
php数据序列化测试实例详解
2017/08/12 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
js资料toString 方法
2007/03/13 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
《草原》教学反思
2014/02/15 职场文书
春节超市活动方案
2014/08/14 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
python ansible自动化运维工具执行流程
2021/06/24 Python
MySQL 数据类型详情
2021/11/11 MySQL