<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="PHP根据array_map、array_column、array_reduce获取二维数组中某个key的集合" id="card1">
<p> 游客</p><p>
标题:PHP根据array_map、array_column、array_reduce获取二维数组中某个key的集合<br/>
正文:<br/>
具体是这样的，如下一个二维数组，是从库中读取出来的。代码如下:$user = array( <br/>0 =&amp;gt; array( <br/>'id' =&amp;gt; 1, <br/>'name' =&amp;gt; '张三', <br/>'email' =&amp;gt; 'zhangsan@camnpr.com', <br/>), <br/>1 =&amp;gt; array( <br/>'id' =&amp;gt; 2, <br/>'name' =&amp;gt; '李四', <br/>'email' =&amp;gt; 'lisi@camnpr.com', <br/>), <br/>2 =&amp;gt; array( <br/>'id' =&amp;gt; 5, <br/>'name' =&amp;gt; '郑州网建', <br/>'email' =&amp;gt; 'web@camnpr.com', <br/>), <br/>...... <br/>); 上面的数组格式，主要大家玩过 PHP+MYSQL，就肯定非常熟悉了。 <br/><br/>那么，现在有这样的两个需求： <br/><br/>1）获取索引&quot;id&quot;的集合，并且保存为一个一位数组，即得到 array(1,2,5) <br/><br/>不知道各位朋友会怎么写呢？ <br/><br/>如果是以前我的写法就是直接 foreach，然后 array_push 一个个的往一个数组变量里塞。这样也能实现。但这样的写法很影响性能，因为使用 PHP 原生的函数肯定比循环效率高。代码如下:$ids = array(); <br/>$ids = array_map('array_shift', $user); 如上代码就可以得到我们想要的结果了，关于函数的使用想看手册。 <br/><br/>其实这里面还有一种方案，使用 array_column 函数，不过此函数需要 PHP 版本要求，(PHP 5 &amp;gt;= 5.5.0)代码如下:$ids = array(); <br/>$ids = array_column($user, 'id'); 这样的话，效率肯定会更高了。 <br/><br/>2）获取索引&quot;name&quot;的集合，并且保存为一个一位数组，即得到 array('张三','李四',‘王五') <br/><br/>按照，我以往的写法，还是一样的foreach，然后 array_push 一个个<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1715&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1715&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1715&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1715&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1715">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1715">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>