PHP二维数组非遍历取值_获取二维数组中某个key的集合
2017-07-07 13:43:44 By: shinyuu
本文为代码分享、也是在工作中看到一些“大牛”的代码、做做分享、具体是这样的、如下一个二维数组、是从库中读取出来的
代码清单
$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 的童鞋、看了本文就赶快悄悄更正吧!
若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力
想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)
或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)
如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教
为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛