PHP二维数组非遍历取值_获取二维数组中某个key的集合
2017-07-07 13:43:44  By: dwtedx

本文为代码分享、也是在工作中看到一些“大牛”的代码、做做分享、具体是这样的、如下一个二维数组、是从库中读取出来的

代码清单

$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的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+