PHP获取二维数组中某一列的值集合
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获取二维数组中某一列的值集合相关推荐
- PHP 如何获取二维数组中某个key的集合(高性能查找)
分享下PHP 获取二维数组中某个key的集合的方法. 具体是这样的,如下一个二维数组,是从库中读取出来的. 代码: $user = array( 0 => array( 'id' => 1 ...
- php 去除二维数组中的包含某一个值的数组
今天写程序,遇到一个的问题. 我想把一个二维数组中的包含某一个值的数组去掉,并重新生成索引下标 例如: $all_zone=array(array("id"=>"R ...
- php数组取字段值,php如何获取二维数组指定的某个字段的值
php怎么获取二维数组指定的某个字段的值? 需求:有如下数组$arr,数组中有两个模块一个net 一个login,我怎么根据net模块获取最后一个marks, 其中net模块和login模块的数据还是 ...
- 二维数组存放多个字符串_二维数组中输出多个最值及其下标。(仅供参考)
//求二维数组的最大值最小值及最值所在的下标(含多个最值) #include <stdio.h> #include <stdlib.h> #include <time.h ...
- PHP对二维数组中的某个字段的值进行排序
1.第一种方式 <?php/*** 根据某列对二维数组排序* @param $arr* @param $row* @param string $type* @return array*/ fun ...
- php 提取二维数组的key,PHP 获取二维数组中某个key的集合
一.CSRF 即Cross-site request forgery跨站请求伪造,是指有人冒充你的身份进行一些恶意操作. 比如你登录了网站A,网站A在你的电脑设置了cookie用以标识身份和状态,然后 ...
- Python 获取二维数组的某一列
由于习惯了 C++/Matlab 使用连续的 2 个[] 获取元素 当需要选择矩阵的一列时,容易写作: a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(a[:] ...
- 4.编程打印一个二维数组中所有元素的和,并打印最大值,最小值(以及它们所在的行号和列号)
/*晕呀,竟然做了一天,还不知道怎样做出来的.....*/ package HomeWork; import java.util.Arrays; /*4.编程打印一个二维数组中所有元素的和,并打印最大 ...
- Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...
最新文章
- 两种获取connectionString的方式
- 【Java】6.4 final 修饰符
- AAAI 2020 时间交错网络 | ICCV19多标签视频理解冠军方案
- spark.mllib:GradientBoostedTrees
- java中closeable_java的Closeable接口和Cloneable接口
- 【转载】jQuery学习笔记
- mfc 创建线程函数AfxBeginThread,线程中访问mfc控件
- Mybatis批量更新数据
- 微软推出了Cloud Native Application Bundles和开源ONNX Runtime
- BigInt:JavaScript 中的任意精度整数
- matlab双极性眼图,实验报告三编程做单极性码眼图仿真
- 突然发现一个很好用Golang的json库
- mybatis批量删除提示类型错误
- 红外图像盲元修正MATLAB算法,红外图像盲元检测方法与流程
- 你知道什么浊化现象吗?
- java常用jar包下载_standard.jar包
- 安装Windows XP出现0X0000007B的解决方法
- strlen函数原理
- 一场青岛式婚礼的诞生(青岛民俗)
- 【python初学者日记】selenium初体验——“秒杀商品”、“清空购物车”技能养成记(一)
热门文章
- Knox网关、网关简介、概述、支持的Apache Hadoop服务、支持的Apache Hadoop生态系统的UI、参考资料
- Elasticsearch的功能,Elasticsearch的适用场景,Elasticsearch的特点(来自学习资料)
- 函数分类,HIVE CLI命令,简单函数,聚合函数,集合函数,特殊函数(窗口函数,分析函数,混合函数,UDTF),常用函数Demo
- shell的输入和输出
- s:if的用法(判断用户是否登录过了的操作)
- SQL Server pivot行列转换案例分析
- Python数据库字段拆分数据
- python求txt文件内平均值_使用Python计算.txt文件中的数字的平均值
- UART_SEND详细设计方案
- 2020年全球云服务规模将达3900亿美元