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($records as $v)

{

  $b[] = $v[‘last_name‘];

}

使用foreach实现例二:


1

2

3

4

5

6

使用foreach实现例二:

$c = array();

foreach($records as $k=>$v)

{

 $c += array($v[‘id‘]=>$v[‘last_name‘]); //使用+运算符, 以追加的形式(不改变原数组索引), 合并组装的数组

}                 //若使用array_merge,数字键名将被重新编号

在取出的多条数据中,典型的二维数组,如果需要使用数据中单一的值与值对应的情况,array_column()即可完成,但是面对较复杂的数组结构,foreach才能让你更灵活,不过优先使用系统函数总是首选的。

时间: 2024-10-08 13:53:19

PHP中 array_map 与 array_column 之间的关系的相关文章

PHP中array_map与array_column之间的关系分析

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,返回的数组中 对应键 为i

array_map与array_column之间的关系

/*|----------------------------------------------------------|array_map();将回调函数作用到给定数组的单元上|array_column();快速实现:将二维数组转为一维数组|----------------------------------------------------------*/ 例一: $records = array( array( 'id' => 2135, 'first_name' => 'John'

面向对象中多个对象之间的关系

http://www.cnblogs.com/wing011203/archive/2012/06/23/2559223.html 当谈到面向对象的设计时,我们经常说面向对象是符合人们对现实世界的思维模式,即人们采用针对非程序设计领域存在的复杂问题的解决方式,来解决软件设计过程中各种错综复杂的关系.利用面向对象设计,特别是采用各种设计模式来解决问题时,会设计多个类,然后创建多个对象,这些对象,有些主要是数据模型,有些则是行为描述占主体.一个设计良好的类,应该是兼顾信息和行为,并且是高内聚.而不同

ASP.NET-MVC中Entity和Model之间的关系

Entity 与 Model之间的关系图 ViewModel类是MVC中与浏览器交互的,Entity是后台与数据库交互的,这两者可以在MVC中的model类中转换 MVC基础框架 来自为知笔记(Wiz) 附件列表 ASP.Net MVC基础框架.png viewmodel.JPG

java中paint repaint update 之间的关系

最近总结了一下java中的paint,repaint和updata三者之间的关系,首先咱们都知道用paint方法来绘图,用repaint重绘,用update来写双缓冲.但是他们之间是怎么来调用的呢,咱们来分析一下(想直接看结果,请跳过分析过程): -----------------------------------------------------------------------------------------------------------------------------

浅谈JS中的构造函数、原型对象(prototype)、实例中的属性/方法之间的关系

原文链接:https://segmentfault.com/a/1190000016951069 构造函数:函数中的一种,通过关键字new可以创建其实例.为了便于区分,通常首字母大写:原型对象:一种特殊的对象,构造函数创建时自动生成:与构造函数形成一一对应,如同人和影子般的关系:实例:通过构造函数实例出来的对象: 在定义构造函数时,在其内部(“{“和”}”)进行定义属性和方法.当我们通过关键字new,对构造函数进行实例化的时候.实例会对构造函数的这些属性进行拷贝出一份副本,然后将其归属为当前实例

javascript中Object与Function之间的关系

首先看几个例子: Function instanceof Object //true Object instanceof Function // true 说明Object 是被Function 构造出来的 Function instanceof Function //true 说明自己被自己构造 Object.getPrototypeOf(Function) === Function.prototype // true Object.getPrototypeOf(Object.prototyp

HEVC-I帧中CU,TU,PU之间的关系

这里主要是结合HEVC的解码端I帧进行讲解的,其中P,B帧基本上没有太大的出入,主要是PU还存在不规则的情况,因为我现在刚做完I帧,对P帧还没有把握 之后清楚解析后,再进行补充 在之前的博文中提到了编码树结构的相关概念,这里主要结合代码进行进一步的讲解 在帧内模式中: 35中预测模式是在PU的基础上进行定义的,但是在具体的帧内预测过程中是以TU为单位的,标准规定PU可以四叉树的形式划分为TU,并且同一个PU内的TU共享一种预测模式 在实际的预测中,每一个TU自己预测自己的,自己参考自己周围的像素

exce中42093和日期之间的关系

在EXECEL中数字0 代表日期 1900-1-0 ,即这个日期为起始日期,算是第0天数字1 代表日期 1900-1-1 ,即第一天数字2 代表日期 1900-1-2 ,即第二天......数字41513 代表 2013-8-27 ,即第41513天 在时间中的规则是把1分成24份 =1/24 ,每一份就是1个小时,分成1440份 =1/(24*60) ,每一份就是1分钟,分成86400份 =1/(24*60*60) ,每一份就是1秒