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 相关文章推荐
文件系统基本操作类
Nov 23 PHP
收集的php编写大型网站问题集
Mar 06 PHP
关于crontab的使用详解
Jun 24 PHP
destoon复制新模块的方法
Jun 21 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
Laravel 模型关联基础教程详解
Sep 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
一个数据采集类
2007/02/14 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
php中上传文件的的解决方案
2018/09/25 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
学习jquery之一
2007/04/27 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
浅谈Vue.js
2017/03/02 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
AngularJS 霸道的过滤器小结
2017/04/26 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
python实现将文本转换成语音的方法
2015/05/28 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
python占位符输入方式实例
2019/05/27 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
运输服务质量承诺书
2014/03/27 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle