PHP还是比较常用的,于是我研究了一下PHP二维数组,下面通过本文给大家介绍PHP获取二维数组中某一列的值集合,对php数组二维数组的值相关知识感兴趣的朋友一起学习吧

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

?
1
2
3
4
5
6
7
8
9
10
$arr = array(
1=>array(
'id' => 5,
'name' => '张三'
),
2=>array(
'id' => 6,
'name' => '李四'
)
);

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

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

这里有几种方法:

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

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

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

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

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

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

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

哈哈,也是很方便的

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

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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>";
}
?>

来源:http://www.jb51.net/article/77005.htm

PHP获取二维数组中某一列的值集合相关推荐

  1. PHP 如何获取二维数组中某个key的集合(高性能查找)

    分享下PHP 获取二维数组中某个key的集合的方法. 具体是这样的,如下一个二维数组,是从库中读取出来的. 代码: $user = array( 0 => array( 'id' => 1 ...

  2. php 去除二维数组中的包含某一个值的数组

    今天写程序,遇到一个的问题. 我想把一个二维数组中的包含某一个值的数组去掉,并重新生成索引下标 例如: $all_zone=array(array("id"=>"R ...

  3. php数组取字段值,php如何获取二维数组指定的某个字段的值

    php怎么获取二维数组指定的某个字段的值? 需求:有如下数组$arr,数组中有两个模块一个net 一个login,我怎么根据net模块获取最后一个marks, 其中net模块和login模块的数据还是 ...

  4. 二维数组存放多个字符串_二维数组中输出多个最值及其下标。(仅供参考)

    //求二维数组的最大值最小值及最值所在的下标(含多个最值) #include <stdio.h> #include <stdlib.h> #include <time.h ...

  5. PHP对二维数组中的某个字段的值进行排序

    1.第一种方式 <?php/*** 根据某列对二维数组排序* @param $arr* @param $row* @param string $type* @return array*/ fun ...

  6. php 提取二维数组的key,PHP 获取二维数组中某个key的集合

    一.CSRF 即Cross-site request forgery跨站请求伪造,是指有人冒充你的身份进行一些恶意操作. 比如你登录了网站A,网站A在你的电脑设置了cookie用以标识身份和状态,然后 ...

  7. Python 获取二维数组的某一列

    由于习惯了 C++/Matlab 使用连续的 2 个[] 获取元素 当需要选择矩阵的一列时,容易写作: a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(a[:] ...

  8. 4.编程打印一个二维数组中所有元素的和,并打印最大值,最小值(以及它们所在的行号和列号)

    /*晕呀,竟然做了一天,还不知道怎样做出来的.....*/ package HomeWork; import java.util.Arrays; /*4.编程打印一个二维数组中所有元素的和,并打印最大 ...

  9. Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值

    为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...

最新文章

  1. 两种获取connectionString的方式
  2. 【Java】6.4 final 修饰符
  3. AAAI 2020 时间交错网络 | ICCV19多标签视频理解冠军方案
  4. spark.mllib:GradientBoostedTrees
  5. java中closeable_java的Closeable接口和Cloneable接口
  6. 【转载】jQuery学习笔记
  7. mfc 创建线程函数AfxBeginThread,线程中访问mfc控件
  8. Mybatis批量更新数据
  9. 微软推出了Cloud Native Application Bundles和开源ONNX Runtime
  10. BigInt:JavaScript 中的任意精度整数
  11. matlab双极性眼图,实验报告三编程做单极性码眼图仿真
  12. 突然发现一个很好用Golang的json库
  13. mybatis批量删除提示类型错误
  14. 红外图像盲元修正MATLAB算法,红外图像盲元检测方法与流程
  15. 你知道什么浊化现象吗?
  16. java常用jar包下载_standard.jar包
  17. 安装Windows XP出现0X0000007B的解决方法
  18. strlen函数原理
  19. 一场青岛式婚礼的诞生(青岛民俗)
  20. 【python初学者日记】selenium初体验——“秒杀商品”、“清空购物车”技能养成记(一)

热门文章

  1. Knox网关、网关简介、概述、支持的Apache Hadoop服务、支持的Apache Hadoop生态系统的UI、参考资料
  2. Elasticsearch的功能,Elasticsearch的适用场景,Elasticsearch的特点(来自学习资料)
  3. 函数分类,HIVE CLI命令,简单函数,聚合函数,集合函数,特殊函数(窗口函数,分析函数,混合函数,UDTF),常用函数Demo
  4. shell的输入和输出
  5. s:if的用法(判断用户是否登录过了的操作)
  6. SQL Server pivot行列转换案例分析
  7. Python数据库字段拆分数据
  8. python求txt文件内平均值_使用Python计算.txt文件中的数字的平均值
  9. UART_SEND详细设计方案
  10. 2020年全球云服务规模将达3900亿美元