博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么解析 array_column不可用,
阅读量:6177 次
发布时间:2019-06-21

本文共 1549 字,大约阅读时间需要 5 分钟。

       不久前,自己在一个小项目,我要拿出每个元素的一维数组key的值,一维阵列的形成,突然想到php 有一种功能,实现.

        

$array = array (		array (				"id" => 12,				"name" => "Karl" 		),		array (				"id" => 4,				"name" => "Franz" 		),		array (				"id" => 9,				"name" => "Helmut" 		),		array (				"id" => 10,				"name" => "Kurt" 		) );print_r(array_column($array, 'id'));

      但出错了,网页上错误提示是 no function  没有这个函数,但手冊是有的,为什么呢?

打开手冊才知道是php 5.5新增的,而我的php版本号确实 php 5.3所以没有,怎样攻克了.于是我写了

以下两种算法

  第一种算法例如以下所看到的:

     

$key = 'id';$array = array (		array (				"id" => 12,				"name" => "Karl" 		),		array (				"id" => 4,				"name" => "Franz" 		),		array (				"id" => 9,				"name" => "Helmut" 		),		array (				"id" => 10,				"name" => "Kurt" 		) );$ar = array_map ( function ($element) use($key) {	$newarray = array ();	if (array_key_exists ( $key, $element )) {		$newarray = $element [$key];	}	return $newarray;}, $array );print_r ( $ar );

上面有个函数  function ($element) use ($key)  结构 请訪问  

另外一种方法是:

function array_merge_on_key($key, $array1, $array2) {      $arrays = array_slice(func_get_args(), 1);      $r = array();      foreach($arrays as &$a) {         if(array_key_exists($key, $a)) {            $r[] = $a[$key];            continue;         }      }      return $r;   }   // example:   $array1 = array("id" => 12, "name" => "Karl");   $array2 = array("id" => 4, "name" => "Franz");   $array3 = array("id" => 9, "name" => "Helmut");   $array4 = array("id" => 10, "name" => "Kurt");   $result = array_merge_on_key("id", $array1, $array2, $array3, $array4);   print_r($result);

  但是我特别喜欢使用数组功能 array_map()这样的结构.

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
判断 SQLServer 触发器类型,支持多行
查看>>
SQL表连接查询(inner join、full join、left join、right join)
查看>>
阿里云OTS(开放结构化数据服务)可视化管理工具的设计和功能介绍
查看>>
Github创建分支
查看>>
转换PHP脚本成为windows的执行程序
查看>>
Python组织文件 实践:将带有美国风格日期的文件改名为欧洲风格日期
查看>>
实现iOS7上tableView的切割线像iOS6中的效果
查看>>
使用阿里云接口进行银行卡四要素实名认证
查看>>
聊聊excel生成图片的几种方式
查看>>
20 万网络节点背后的数据创新应用
查看>>
理论 | 朴素贝叶斯模型算法研究与实例分析
查看>>
docker安装gitlab只需要3分钟
查看>>
Android菜鸟学习js笔记 一
查看>>
Java基础之SPI机制
查看>>
使用js控制滚动条的位置
查看>>
【Tornado源码阅读笔记】tornado.web.Application
查看>>
lsyncd搭建测试
查看>>
移动web开发之像素和DPR
查看>>
nginx+tomcat+redis实现session共享
查看>>
UWP VirtualizedVariableSizedGridView 支持可虚拟化可变大小Item的View(二)
查看>>