自己写的兼容低于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 相关文章推荐
建立文件交换功能的脚本(三)
Oct 09 PHP
使用adodb lite解决问题
Dec 31 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
Laravel学习教程之View模块详解
Sep 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
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
php自定义hash函数实例
2015/05/05 PHP
yii用户注册表单验证实例
2015/12/26 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
python sys.argv[]用法实例详解
2018/05/25 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
学习十八大精神心得体会
2013/12/31 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
企业宣传工作方案
2014/06/02 职场文书
学校安全责任书范本
2014/07/23 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
美丽心灵观后感
2015/06/01 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL