PHP中 array_map 与 array_column 之间的关系
(PHP 5 >= 5.5.0)
array_map()与array_column()用法如下:
array_map();将回调函数作用到给定数组的单元上
array_column();快速实现:将二维数组转为一维数组
array_column()函数格式为:
array array_column ( array $input , mixed $column_key [, mixed $index_key ] );
返回input数组中值为column_key的列; 如果指定了可选参数index_key,返回的数组中 对应键 为input数组值index_key对应的值。
示例代码一:
| 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 | $records= array(  array(    'id'=> 2135,    'first_name'=> 'John',    'last_name'=> 'Doe',  ),  array(    'id'=> 3245,    'first_name'=> 'Sally',    'last_name'=> 'Smith',  ),  array(    'id'=> 5342,    'first_name'=> 'Jane',    'last_name'=> 'Jones',  ),  array(    'id'=> 5623,    'first_name'=> 'Peter',    'last_name'=> 'Doe',  )); $first_names= array_column($records, 'first_name');print_r($first_names); | 
输出:
| 1 2 3 4 5 6 7 | Array(  [0] => John  [1] => Sally  [2] => Jane  [3] => Peter) | 
示例代码二:
| 1 2 | $last_names= array_column($records, 'last_name', 'id');print_r($last_names); | 
输出:
| 1 2 3 4 5 6 7 | Array(  [2135] => Doe  [3245] => Smith  [5342] => Jones  [5623] => Doe) | 
当没有array_column()函数情况下,
使用array_map()实现例一:
| 1 2 3 | $a= array_map(function($element){  //$records作为参数传入回调函数  return$element['last_name'];  //返回数组元素值的last_name对应值}, $records);            //array_map返回数组,相当于把每个$element['last_name']存入新数组,所以是新建的索引 | 
使用foreach实现例一:
| 1 2 3 4 | foreach($recordsas$v){  $b[] = $v['last_name'];} | 
| 1 2 3 4 5 6 | 使用foreach实现例二:$c= array();foreach($recordsas$k=>$v){ $c+= array($v['id']=>$v['last_name']); //使用+运算符, 以追加的形式(不改变原数组索引), 合并组装的数组}                 //若使用array_merge,数字键名将被重新编号 | 
在取出的多条数据中,典型的二维数组,如果需要使用数据中单一的值与值对应的情况,array_column()即可完成,但是面对较复杂的数组结构,foreach才能让你更灵活,不过优先使用系统函数总是首选的。
PHP中 array_map 与 array_column 之间的关系的更多相关文章
- PHP中array_map与array_column之间的关系分析
		array_map()与array_column()用法如下: array_map();将回调函数作用到给定数组的单元上array_column();快速实现:将二维数组转为一维数组 array_co ... 
- array_map与array_column之间的关系
		/*|----------------------------------------------------------|array_map();将回调函数作用到给定数组的单元上|array_col ... 
- [PHP]array_map与array_column之间的关系
		---------------------------------------------------------------------------------------------------- ... 
- java中paint repaint update 之间的关系
		最近总结了一下java中的paint,repaint和updata三者之间的关系,首先咱们都知道用paint方法来绘图,用repaint重绘,用update来写双缓冲.但是他们之间是怎么来调用的呢,咱 ... 
- ASP.NET-MVC中Entity和Model之间的关系
		Entity 与 Model之间的关系图 ViewModel类是MVC中与浏览器交互的,Entity是后台与数据库交互的,这两者可以在MVC中的model类中转换 MVC基础框架 来自为知笔记(Wiz ... 
- 讨论SQL语句中主副表之间的关系
		在公司这么多些时间,自己在写SQL语句这方面的功夫实在是太差劲了,有时候自己写出来的SQL语句自己都不知道能不能使用,只是自己写出来的SQL语句是不报错的,但是,这对于真正意义上的SQL语句还差的真的 ... 
- pytorch中DataLoader, DataSet, Sampler之间的关系
		转自:https://mp.weixin.qq.com/s/RTv0cUWvc0kuXBeNoXVu_A 自上而下理解三者关系 首先我们看一下DataLoader.__next__的源代码长什么样,为 ... 
- FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系
		FFMPEG中结构体很多.最关键的结构体可以分成以下几类: 解协议(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议 ... 
- python中赋值-浅拷贝-深拷贝之间的关系
		赋值: 变量的引用,没有拷贝空间 对象之间赋值本质上 是对象之间的引用传递而已.也就是多个对象指向同一个数据空间. 拷贝的对象分两种类型: . 拷贝可变类型 浅拷贝: 只拷贝第一层数据,不关心里面的第 ... 
随机推荐
- rest webapi 返回数据
			webapi可以直接返回一个对象,也可以返回json 一.返回一个对象例子 [System.Web.Mvc.AllowAnonymous] [System.Web.Http.HttpGet] publ ... 
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(二)
			接下来我们将整合mybatisplus+Oracle,实现一个简单的查询.(期间踩了很多坑,遇到一些问题,还好慢慢解决了.现在是通过配置文件的方式来进行dubbo服务的注册和发布,希望以后能在学习和实 ... 
- Java - 避免不必要的对象
			通常,我们更喜欢重用一个对象而不是重新创建一个.如果对象是不可变的,它就始终可以被重用. 下面是一个反面例子: String s = new String("stringette" ... 
- redis(7)LRU缓存
			一.LRU简介 LRU是Least Recently Used的缩写,即:最近最少使用. 它是内存管理中的一种页面置换算法,对于在内存中但是又不用的数据块,操作系统会根据哪些数据属于LRU而将其移除内 ... 
- 如何解决git fatal: refusing to merge unrelated histories
			我在Github新建一个仓库,写了License,然后把本地一个写了很久仓库上传. 先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法p ... 
- 如何删除EF4.0以上的版本
			通过VS2010的Package Manager Console安装的EF版本,会在项目根目录的packages目录中生成一个EntityFramework.4.3.0目录,安装什么版本就是什么版本的 ... 
- awk查找
			cat catalina.out|grep "报表 sql"|awk -F '[' '{print $5}'|awk -F ']' '{print $1}'|sort -n|uni ... 
- gitlab 创建ssh步骤
			1.使用gitlab首先要创建ssh的公钥和私钥.创建ssh的步骤和命令如下: 打开git bash,我的是windows,切换到.ssh文件夹下.如果没有则创建.ssh(默认是没有这个文件夹的).检 ... 
- 如何有效防止API的重放攻击(转自阿里云)
			API重放攻击(Replay Attacks)又称重播攻击.回放攻击,这种攻击会不断恶意或欺诈性地重复一个有效的API请求.攻击者利用网络监听或者其他方式盗取API请求,进行一定的处理后,再把它重新发 ... 
- PHP通过header和meta实现页面编码声明
			一.使用方式: <META http-equiv=”content-type” content=”text/html; charset=xxx”> header(“content-type ... 
