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


Posted in PHP onDecember 25, 2015

PHP还是比较常用的,于是我研究了一下PHP二维数组。在处理php数组的时候,有一种需求特别的频繁,如下二维数组:

$arr = array(
1=>array(
'id' => 5,
'name' => '张三'
),
2=>array(
'id' => 6,
'name' => '李四'
)
);

目的就是要取到key为name的集合,得到这个结果:

$arr2 = array(
0=>'张三',
1=>'李四'
);

这里有几种方法:

1:最简单的,foreach遍历数组:

foreach ($arr as $key => $value) {
$arr2[] = $value['name'];
}

2:代码量稍微少一点的代码,使用了 array_map 这个php方法:

$arr2 = array_map('array_shift',$arr);

意为把$arr数组的每一项值的开头的值移出,并返回被移出的每一项值中被移出的值,注意此时新数组$arr2的键仍是原数组$arr的键

2.1:在方法2的基础上,可以稍微开一下脑洞,如果需要获取的是二维数组的每一项的开头列或结尾列,也可以这样做:

$arr2 = array_map('reset',$arr);
$arr2 = array_map('end',$arr);

哈哈,也是很方便的

3:还可以使用 array_reduc e方法,不过代码略多,不过这个方法的想象空间(针对别的数组取值操作)还是蛮大的:

$arr2 = array_reduce($arr, create_function('$result, $v', '$result[] = $v["name"];return $result;'));

array_reduce方法用回调函数迭代地将对数组的值进行操作,而create_function用于一个匿名方法做回调用,这个匿名方法的参数$result为上一次迭代产生的值,$v是当前的值,内部实现既为获取到数组$arr每一项的”name”的值并push到新$result数组;

4:最后这个终极方法实在是太爽了,一个方法就搞定,而且非常灵活:

$arr2 = array_column($arr, 'name');

第二个参数为想要获取的那一列的键名,是不是很方便呢,不过这个方法有个限制,就是php版本必须 >= 5.5.0,在陈旧项目中使用这个方法还是得斟酌一下哈

PS: php中遍历二维数组的几种方式

<?php
//使用for循环遍历
$arr2=array(array("张三","20","男"),array("李四","25","男"),array("王五","19","女"),array("赵六","25","女"));
echo "<table border=2 bordercolor=red><tr><td>姓名</td><td>年龄</td& gt;<td>性别</td></tr>";
for($i=0;$i<4;$i++){
echo "<tr>";
for($j=0;$j<3;$j++){
  echo "<td>";
  echo $arr2[$i][$j];
  echo "</td>";
}
echo "</tr>";
echo "<br>";
}
echo "</table>";
?>
//使用foreach遍历
<?php
$arr = array('one'=>array('name'=>'张三','age'=>'23','sex'=>'男'),
  'two'=>array('name'=>'李四','age'=>'43','sex'=>'女'),
  'three'=>array('name'=>'王五','age'=>'32','sex'=>'男'),
  'four'=>array('name'=>'赵六','age'=>'12','sex'=>'女'));
foreach($arr as $k=>$val){
  echo $val['name'].$val['age'].$val['sex']."<br>";
}
echo "<p>";
?>
<?php
$arr = array('one'=>array('name'=>'张三','age'=>'23','sex'=>'男'),
  'two'=>array('name'=>'李四','age'=>'43','sex'=>'女'),
  'three'=>array('name'=>'王五','age'=>'32','sex'=>'男'),
  'four'=>array('name'=>'赵六','age'=>'12','sex'=>'女'));
foreach($arr as $key=>$value){
foreach($value as $key2=>$value2){
  echo $value2;
}
echo "<br>";
}
?>
PHP 相关文章推荐
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
基于php下载文件的详解
Jun 02 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
php用户登录之cookie信息安全分析
May 13 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
PHP生成推广海报的方法分享
Apr 22 PHP
用php定义一个数组最简单的方法
Oct 04 PHP
Laravel框架下的Contracts契约详解
Mar 17 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
Dec 25 #PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 #PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
Dec 25 #PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 #PHP
smarty高级特性之对象的使用方法
Dec 25 #PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 #PHP
smarty高级特性之过滤器的使用方法
Dec 25 #PHP
You might like
DOMXML函数笔记
2006/10/09 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
python中的字典操作及字典函数
2018/01/03 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书