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 相关文章推荐
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
php 404错误页面实现代码
Jun 22 PHP
小文件php+SQLite存储方案
Sep 04 PHP
PHP 强制下载文件代码
Oct 24 PHP
PHP提取字符串中的图片地址[正则表达式]
Nov 12 PHP
php数组去重的函数代码
Feb 03 PHP
PHP引用符&的用法详细解析
Aug 22 PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
微信支付开发维权通知实例
Jul 12 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
提高PHP编程效率的方法
2013/11/07 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
php实现可逆加密的方法
2015/08/11 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
python实现比较两段文本不同之处的方法
2015/05/30 Python
解决Python传递中文参数的问题
2015/08/04 Python
django批量导入xml数据
2016/10/16 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
公证书标准格式
2014/04/10 职场文书
竞选村长演讲稿
2014/04/28 职场文书
董事长助理岗位职责
2015/02/11 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
简爱读书笔记
2015/06/26 职场文书
《迟到》教学反思
2016/02/24 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python