解析为何 array_column不可用,
来源:互联网 发布:淘宝客服会遇到的问题 编辑:程序博客网 时间:2024/04/28 06:01
前不久,自己在一个小项目上,想取出一个二维数组每个元素的一个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()这种结构的.
0 0
- 解析为何 array_column不可用,
- array_column
- php解析json文件时为何不出任何效果?
- PreparedStatement 不执行 为何?
- 不知道为何去学做花
- 牛仔裤为何不耐磨?
- 为何不浪漫一是最美
- 为何不伸手
- 黑莓为何放弃治疗 已无人可用
- oracle 不可用 解决办法
- 服务器应用程序不可用
- RPC服务器不可用
- 不可用的按钮
- 服务器应用程序不可用
- 按钮初始化不可用
- 服务器应用程序不可用
- 服务器应用程序不可用
- 服务器应用程序不可用
- C++ 用critical_section 代码临界区模拟信号量,解决生产者消费者的问题
- OCR,VOTEDISK各种测试之三有备份恢复OCR及VOTEDISK
- 嵌入式系统开发流程
- Hash开散列 拉链法
- JS常用语句
- 解析为何 array_column不可用,
- C#数据缓存介绍及Caching通用帮助类整理
- C程序设计语言
- Android socket通信 TCP协议
- 定义一个由整数组成的数组,然后输入一个整数X,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j
- 【博客计划】一个新的开始!
- 大端和小端及如何判断
- mac 启用root 用户并设置密码
- spring4整合Quartz 2.x的版本问题