php 获取二维数组的某个,PHP 如何获取二维数组中某个key的集合(高性能查找)

本文介绍了如何在PHP中高效地获取二维数组中特定键的值集合,包括使用`array_map`、`array_column`和`array_reduce`等函数。通过实例代码展示了如何获取'id'和'name'键的集合,强调了使用PHP内置函数提升性能的重要性,并提到了对PHP版本的要求。
摘要由CSDN通过智能技术生成

分享下PHP 获取二维数组中某个key的集合的方法。

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

代码:

$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 => '王五',

);

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

本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享. 具体是这样的,如下一个二维数组,是从库中读取出来的. 代码清单: $user = array( 0 => array( 'id'  ...

PHP根据array_map、array_reduce和array_column获取二维数组中某个key的集合

http://camnpr.com/php-python/1715.html 巧用array_map()和array_reduce()替代foreach循环

PHP递归获取二维数组中指定key的值

$data = [ "resulterrorCode" => 0, "resultraw" => [ "result" =&gt ...

二维数组过滤,根据多个条件获取二维数组中指定的arr

/** * 二维数组过滤,根据多个条件获取二维数组中指定的arr * @param $data_arr * @param $lm_number * @param $source_type * @par ...

php获取二维数组中某一列的值集合

$result //二维数组$uid_list = array_column($result, 'uid');

php 删除二维数组中某个key值

/** * 根据key删除数组中指定元素 * @param array $arr 数组 * @param string/int $key 键(key) * @return array */ priva ...

PHP获取二维数组中的指定若干列【同array_column】

PHP5.3以上  用到了array_map 使用匿名函数进行处理 代码: <?php function array_col($arr = array(), $idx = 0, $newidx ...

如何从二维数组中的多个key中获取指定key的值?

精华 LOVEME96 2016-10-21 10:40:19 浏览(1512) 回答(3) 赞(0) 新手求教:二维数组中一般会有多个key,如果我们要获得指定key的值,应该怎么做? 问题标签: ...

剑指Offer面试题:2&period;二维数组中的查找

一.题目:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

随机推荐

h5自定义audio(问题及解决)

h5活动需要插入音频,但又需要自定义样式,于是自己写咯 html

MongoDB数据库的主从配对与迁移示例

数据中心在运行中有可能遇到各种硬件.电力.网络故障等问题,需要设计良好的系统来隔离,尽量减少对上层应用的影响,持续对外提供服务:一旦发生业务中断,也应尽快恢复.通过主从备份设计,在主应用系统发生故障时 ...

State模式

地铁十字转门 状态迁移表格. 起始状态 触发迁移的事件 终止状态  要执行的动作. Locked   Coin               UnLocked UnLock UnLocked Pass  ...

ubuntu下php不能显示中文的问题的解决过程。

在阿里的ECS上的ubuntu平台上成功的安装了apache2和php5与mysql,并进行了测试. 如图所示:

leetcode-algorithms-8 String to Integer &lpar;atoi&rpar;

leetcode-algorithms-8 String to Integer (atoi) Implement atoi which converts a string to an integer. ...

完全使用css编写复选框

在日常的项目中,出现复选框或者单选框,应该都属于常见需求了,最开始阶段,一般只有两种可能性: 一.完全使用  或者&l ...

MFC坐标系

MFC坐标系分为设备坐标系和逻辑坐标系两种.在设备坐标系中,一个像素表示一个单位长度,设备的原点(0,0)始终在显示平面的左上角位置,x轴正向向右,y轴正向向下. 逻辑坐标系中,原点可以放在任何一个位 ...

IntentService 与ResultReceiver

from://http://lyzhanghai.iteye.com/blog/947504 在google的I/O大会中关于“Writing zippy Android apps”,有讲过用Inte ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值