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 相关文章推荐
php include的妙用,实现路径加密
Jul 29 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
php中url函数介绍及使用示例
Feb 13 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
Dec 08 PHP
浅谈PHP的反射机制
Dec 15 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
浅谈PHP错误类型及屏蔽方法
May 27 PHP
PHP实现防止表单重复提交功能【基于token验证】
May 24 PHP
php中关于换行的实例写法
Sep 26 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
Zerg基本策略
2020/03/14 星际争霸
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
Javascript MD4
2006/12/20 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
python打开文件并获取文件相关属性的方法
2015/04/23 Python
利用Python破解验证码实例详解
2016/12/08 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
Python if语句知识点用法总结
2018/06/10 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
文化活动实施方案
2014/03/28 职场文书
学生评语大全
2014/04/18 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
房屋所有权证明
2015/06/19 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
5行Python代码实现一键批量扣图
2021/06/29 Python
vscode内网访问服务器的方法
2022/06/28 Servers