PHP 获取二维数组中某个key的聚合
Jun 13, 2016 am 11:53 AM
PHP 获取二维数组中某个key的集合
本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。
具体是这样的,如下一个二维数组,是从库中读取出来的。
代码清单:
$user = array( 0 => array( 'id' => 1, 'name' => '张三', 'email' => [email protected]', ), 1 => array( 'id' => 2, 'name' => '李四', 'email' => [email protected]', ), 2 => array( 'id' => 5, 'name' => '王五', 'email' => [email protected]', ), ......);
上面的数组格式,主要大家玩过 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 的童鞋,赶快更正吧!
本文来自CSDN,转载请注明出处!http://blog.csdn.net/liruxing1715/article/details/22925575

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

What are the differences between Huawei GT3 Pro and GT4?

How to use email, smtplib, poplib, imaplib modules to send and receive emails in Python

Fix: Snipping tool not working in Windows 11

How to Fix Can't Connect to App Store Error on iPhone

Sort array using Array.Sort function in C#

Simple and clear method to use PHP array_merge_recursive() function

How to use the array_combine function in PHP to combine two arrays into an associative array
