PHP 如何获取二维数组中某个key的集合


Posted in PHP onJune 03, 2014

本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。

具体是这样的,如下一个二维数组,是从库中读取出来的。

代码清单:

$user = array( 
0 => array( 
'id' => 1, 
'name' => '张三', 
'email' => 'zhangsan@sina.com', 
), 
1 => array( 
'id' => 2, 
'name' => '李四', 
'email' => 'lisi@163.com', 
), 
2 => array( 
'id' => 5, 
'name' => '王五', 
'email' => '10000@qq.com', 
), 
...... 
);

上面的数组格式,主要大家玩过 PHP+MYSQL,就肯定非常熟悉了。

那么,现在有这样的两个需求:

1)获取索引"id"的集合,并且保存为一个一位数组,即得到 array(1,2,5)

不知道各位朋友会怎么写呢?

如果是以前我的写法就是直接 foreach,然后 array_push 一个个的往一个数组变量里塞。这样也能实现。但这样的写法很影响性能,因为使用 PHP 原生的函数肯定比循环效率高。

代码清单:

$ids = array(); 
$ids = array_map('array_shift', $user);

如上代码就可以得到我们想要的结果了,关于函数的使用想看手册。

其实这里面还有一种方案,使用 array_column 函数,不过此函数需要 PHP 版本要求,(PHP 5 >= 5.5.0)

代码清单:

$ids = array(); 
$ids = array_column($user, 'id');

这样的话,效率肯定会更高了。

2)获取索引"name"的集合,并且保存为一个一位数组,即得到 array('张三','李四',‘王五')

按照,我以往的写法,还是一样的foreach,然后 array_push 一个个的往一个数组变量里塞。请看高效率的代码清单。

代码清单:

$names = array(); 
$names = array_reduce($user, create_function('$v,$w', '$v[$w["id"]]=$w["name"];return $v;'));

得到结果:
array( 
1 => '张三', 
2 => '李四', 
5 => '王五', 
);

经常 foreach 的童鞋,赶快更正吧!
PHP 相关文章推荐
可定制的PHP缩略图生成程式(需要GD库支持)
Mar 06 PHP
在PHP中使用模板的方法
May 24 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 PHP
php短网址和数字之间相互转换的方法
Mar 13 PHP
php实现比较全的数据库操作类
Jun 18 PHP
PHP简单实现无限级分类的方法
May 13 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
PHP正则表达式匹配替换与分割功能实例浅析
Feb 04 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 #PHP
php 批量添加多行文本框textarea一行一个
Jun 03 #PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 #PHP
php数组中包含中文的排序方法
Jun 03 #PHP
php实现文件下载实例分享
Jun 02 #PHP
php+js实现异步图片上传实例分享
Jun 02 #PHP
php实例分享之html转为rtf格式
Jun 02 #PHP
You might like
真正的ZIP文件操作类(php)
2007/07/21 PHP
php实现mysql数据库备份类
2008/03/20 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
javascript history对象详解
2017/02/09 Javascript
Less 安装及基本用法
2018/05/05 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
在Django的模型中添加自定义方法的示例
2015/07/21 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
基于树莓派的语音对话机器人
2019/06/17 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
django框架中间件原理与用法详解
2019/12/10 Python
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
美国宠物商店:Wag.com
2016/10/25 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
EJB实例的生命周期
2016/10/28 面试题
J2EE模式面试题
2016/10/11 面试题
运动会通讯稿100字
2014/01/31 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
监督检查工作方案
2014/05/28 职场文书
音乐教师求职信范文
2015/03/20 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
新年祝酒词大全
2015/08/11 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书