1. function i_array_column($input, $columnKey, $indexKey=null){
  2. if(!function_exists('array_column')){
  3. $columnKeyIsNumber = (is_numeric($columnKey))?true:false;
  4. $indexKeyIsNull = (is_null($indexKey))?true :false;
  5. $indexKeyIsNumber = (is_numeric($indexKey))?true:false;
  6. $result = array();
  7. foreach((array)$input as $key=>$row){
  8. if($columnKeyIsNumber){
  9. $tmp= array_slice($row, $columnKey, 1);
  10. $tmp= (is_array($tmp) && !empty($tmp))?current($tmp):null;
  11. }else{
  12. $tmp= isset($row[$columnKey])?$row[$columnKey]:null;
  13. }
  14. if(!$indexKeyIsNull){
  15. if($indexKeyIsNumber){
  16. $key = array_slice($row, $indexKey, 1);
  17. $key = (is_array($key) && !empty($key))?current($key):null;
  18. $key = is_null($key)?0:$key;
  19. }else{
  20. $key = isset($row[$indexKey])?$row[$indexKey]:0;
  21. }
  22. }
  23. $result[$key] = $tmp;
  24. }
  25. return $result;
  26. }else{
  27. return array_column($input, $columnKey, $indexKey);
  28. }
  29. }

分享 php array_column 函数 无法在低版本支持的 修改的更多相关文章

  1. 配置node低版本支持ES7

    由于node的版本为6.*,不升级情况下,能使用ES7的 async await 特性, 在目录下 添加 start.js package.json里添加依赖配置 重新npm install 下载依赖 ...

  2. 【笔记】CSS选择器整理(IE低版本支持性测试)

    时间:2015.05.11 参考附件:css选择器.xmind(网友共享) 查看链接:http://www.w3school.com.cn/cssref/css_selectors.asp   htt ...

  3. cocos2dx旧版本支持arm64修改

    修改的版本是cocos2dx.2.2 1.在neon_matrix_impl.c中修改 #if defined(__ARM_NEON__)为 #if defined(_ARM_ARCH_7) 2.在m ...

  4. 本地存储组件--兼容IE低版本

        在前端开发过程中,会用到本地缓存,但是由于浏览器对不同规范支持的程度不一样,每次进行使用都要为兼容行花费不少时间.我整理了一个本地存储的组件.     组件特点: 可以配置使用localSto ...

  5. array_column()函数兼容低版本

    array_column 用于获取二维数组中的元素(PHP 5.5新增函数),但我们有时候需要在低版本的 function i_array_column($input, $columnKey, $in ...

  6. 模拟实现兼容低版本IE浏览器的原生bind()函数功能

    模拟实现兼容低版本IE浏览器的原生bind()函数功能: 代码如下: if(!Function.prototype.bind){   Function.prototype.bind=function( ...

  7. 分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录

    分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录 原文首发: http://anforen.com/wp/2017/08/extensionattribute_compilerserv ...

  8. Android 低版本sdk中没有getSupportedPreviewSizes和getSupportedPictureSizes函数怎么办?

    在做camera和SurfaceView做摄像头程序时,需要获取camera支持的相片大小,在低版本sdk中没有getSupportedPictureSizes函数,怎么办呢,请参阅下面的关键代码: ...

  9. 让低版本的 Android 项目显示出 Material 风格的点击效果

    每天都被不同的需求纠缠的生活是幸福而又不幸的,这不我们家亲爱的设计师们又让我们在低版本的 Android 平台上实现一下类似于 Material Design 的点击效果. 虽然大家都知道 Mater ...

随机推荐

  1. Windows安全认证是如何进行的?[Kerberos篇]

    最近一段时间都在折腾安全(Security)方面的东西,比如Windows认证.非对称加密.数字证书.数字签名.TLS/SSL.WS-Security等.如果时间允许,我很乐意写一系列的文章与广大网友 ...

  2. 工作经验(JNI篇)

    我的工作是C++开发,主要是做底层的,由于要做跨平台的原因,常会做成JNI给Java调用,下面是工作时总结的经验希望有用 JNI只能使用C语言的方式编译,所以,要使用C++的话,要用 extern & ...

  3. iis mvc html

    iis mvc项目显示view文件夹下的html <system.webServer><handlers> <add name="JavaScriptHandl ...

  4. Java的compare比较

    package com.jckb; public class Name implements Comparable<Name>{ private String firstName; pri ...

  5. Unity3D C# 学习List数据类型的使用

    List<T>类是ArrayList 类的泛型等效类. 该类使用大小可按需动态增加的数组实现 泛型的好处: 它为使用 c#语言编写面向对象程序增加了极大的效力和灵活性.不会强行对值类型进行 ...

  6. 系统整理 精讲 swift 泛型

    泛型是一种非常领会的语法,让我很是膜拜! 真是让人又爱又恨,学不懂的时候很抓狂 允许程序在函数,枚举,结构体,类中定义类型形参(类型可以动态改变) 每次使用可以传入不同类型的形参! Array< ...

  7. 使用Docx.dll插入图片在Centos 7 上报错:system.DllNotFound:libgdiplus.so

    熬了N天,终于把WORD 文档打开替换.插入图片完好,部署,本机测试没有问题 可是一放到服务器(Centos 7) 就提示下面的错误: 度娘一下: https://www.cnblogs.com/xi ...

  8. Vue.js(2.x)之Class 与 Style 绑定

    1.前面看数据绑定时还很困惑v-bind处理class时可以使用json格式的值,为什么换成id.href等其他属性就不行.看了下文档解释后明白了些: 2.对象语法主要有以下三种形式: 1)直接在v- ...

  9. 构建第一个Spring Boot2.0应用之Controller(三)

    Controller控制器主要是接收浏览器请求.下面说一说@Controller注解和@RestController的区别: (1)@Controller类中的方法可以直接通过返回String跳转到j ...

  10. Cocos2d-x v3.1 Hello world程序(四)

    Cocos2d-x v3.1 Hello world程序(四) 在上一篇文章中我们我们已经使用Cocos-Console工具生成了工程,本机生成的目录为:"D:\CocosProject\T ...