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

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

什么是array_map?

array_map 是PHP中的一个数组处理函数,它可以对一个或多个数组执行一个回调函数,并返回一个新数组,新数组的元素为回调函数处理过后每个数组对应元素的值。其基本语法如下所示:

array array_map( callable $callback , array $array1 [, array $array2, ...... ] )

其中 $callback 是处理每个元素的回调函数,使用数组内所有的值来调用该回调函数,而 $array1 和可选的 $array2、$array3 等参数是要处理的源数组。可以使用匿名函数作为回调函数。

示例一:对一个数据库查询得到的多行记录进行过滤删除并使用用户自定义的方法处理查询结果

<?php
//模拟数据库查询并获取多行数据
$data = [
  ['name'=>'Tom','age'=>22,'city'=>'New York'],
  ['name'=>'Jerry','age'=>20,'city'=>'Las Vegas'],
  ['name'=>'Lucy','age'=>25,'city'=>'Los Angeles']
];

//定义删除name字段为Tom的函数并使用array_map进行删除
$deleteTom = function($row) {
  if($row['name'] === 'Tom'){
    unset($row['name']);
  }
  return $row;
};
$data = array_map($deleteTom, $data);

//打印结果
var_dump($data);

输出的结果为:

array(3) {
  [1]=>
  array(2) {
    'age'=>
    int(20)
    'city'=>
    string(9) "Las Vegas"
  }
  [2]=>
  array(2) {
    'name'=>
    string(4) "Lucy"
    'age'=>
    int(25)
    'city'=>
    string(11) "Los Angeles"
  }
}

示例二:对数组中每个元素进行平方计算

<?php
//定义回调函数进行平方计算
$squareFn = function($val) {
  return $val * $val;
};

//使用array_map函数计算平方
$arr = [1, 2, 3, 4, 5, 6];
$arrMap = array_map($squareFn, $arr);

//打印结果
var_dump($arrMap);

输出的结果为:

array(6) {
  [0]=>
  int(1)
  [1]=>
  int(4)
  [2]=>
  int(9)
  [3]=>
  int(16)
  [4]=>
  int(25)
  [5]=>
  int(36)
}

什么是array_column?

array_column 是PHP中的一种数组处理函数,它可以返回数组中的一个单一列,该列由数组中指定的键值指定。其基本语法如下所示:

array array_column( array $input , mixed $column_key [, mixed $index_key = null ] )

其中 $input 是要处理的数组,$column_key 是要返回的列,而可选的 $index_key 为输入数组将作为键值的列(如不存在,则使用当前元素的数字索引)。

示例一:从数据集合中获取用户名称列表并清除名称为空的记录

<?php
// 模拟数据集合
$records = [
  ['id'=>1, 'name'=>'tom', 'age'=>22,'sex'=>'男'],
  ['id'=>2, 'name'=>'jerry', 'age'=>20,'sex'=>'男'],
  ['id'=>3, 'name'=>'', 'age'=>25,'sex'=>'女']
];

// 通过array_column获取出所有的用户名并删除为空的用户名
$usernames = array_column($records, 'name');
$usernames = array_filter($usernames, function($val){
  return !empty($val);
});

//打印结果
var_dump($usernames);

输出的结果为:

array(2) {
  [0]=>
  string(3) "tom"
  [1]=>
  string(5) "jerry"
}

示例二: 从数据集合中获取指定列的和

<?php
//模拟数据集合
$data = [
  ['name'=>'TomA','age'=>22],
  ['name'=>'JerryB','age'=>20],
  ['name'=>'LucyC','age'=>25],
  ['name'=>'DavidD','age'=>28]
];

//使用array_column函数获取age数组并求和
$ages = array_column($data, 'age');
$ageSum = array_sum($ages);

//打印结果
echo $ageSum;

输出的结果为:95

array_map与array_column的关系

array_maparray_column 函数都可以对数组中的所有元素进行处理。但是它们的使用场景有很大的区别。array_map 会对每个数组元素应用一个回调函数,返回的结果所形成的数组,而 array_column 只会返回指定 key 的元素,所以是提取数组中某一列的最佳方式,如果要同时对数组中的每个元素进行处理,请使用 array_map。实际上,array_column 可以看成是一种特殊的 array_map,其中键仅用于指定返回的列。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP中array_map与array_column之间的关系分析 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • php常用Output和ptions/Info函数集介绍

    PHP常用Output和Options/Info函数集介绍 1. Output函数集介绍 Output函数集主要用于改变PHP程序的输出流,包括在Web应用中向浏览器输出HTML,JSON等文本格式,以及在命令行应用中输出控制台的内容。 常用的Output函数有以下几个: 1. echo echo "Hello World"; echo …

    PHP 2023年5月26日
    00
  • php中PHPUnit框架实例用法

    针对 PHP 中 PHPUnit 框架实例的用法,我来分享一下详细攻略。 PHPUnit 框架简介 PHPUnit 是一个 PHP的单元测试框架。它是在Junit, SUnit和CppUnit等著名单元测试框架的启发下写成的。PHPUnit 不仅支持建立并运行单元测试,而且支持建立并运行功能测试。 下面,我将介绍 PHPUnit框架的安装及基本使用示例。 安…

    PHP 2023年5月26日
    00
  • php中array_pad()函数用法及实例

    下面就为您详细讲解一下“php中array_pad()函数用法及实例”的攻略。 什么是array_pad()函数 array_pad()函数是PHP中内置的数组函数,它的作用是将一个数组填充到指定长度并返回填充后的数组。 该函数接受三个参数: array_pad(array $array, int $size, mixed $value); 其中: $arr…

    PHP 2023年5月26日
    00
  • Thinkphp3.2.3反序列化漏洞实例分析

    下面是“Thinkphp3.2.3反序列化漏洞实例分析”的完整使用攻略,包括漏洞描述、漏洞分析、漏洞利用和两个示例说明。 漏洞描述 ThinkPHP是一种常用的PHP开发框架,它具有强大的功能灵活性。然而,由于框架的灵活性,它也容易受到反序列化漏洞的攻击。攻击者可以通过在应用程序中注入恶意序列化数据来执行任意代码。 漏洞分析 反序列化漏洞是一种常见的Web应…

    PHP 2023年5月12日
    00
  • php实现比较全的数据库操作类

    使用PHP操作数据库是Web开发中的常见任务之一。为了方便开发人员,许多编写了许多数据库操作类。下面是实现比较全面的PHP数据库操作类的攻略。 步骤1:创建一个数据库操作类 创建一个名为Database的类并声明连接属性: class Database { private $host = ‘localhost’; private $username = ‘r…

    PHP 2023年5月27日
    00
  • PHP pthreads v3下的Volatile简介与使用方法示例

    PHP pthreads是PHP中的多线程扩展库,在多线程编程中使用较为方便。在pthread v3版本中,引入了Volatile关键字,允许多线程之间有序访问共享数据,实现线程间数据同步。下面我们来详细讲解一下“PHP pthreads v3下的Volatile简介与使用方法示例”。 什么是Volatile Volatile 是一种类型修饰符,在多线程编程…

    PHP 2023年5月27日
    00
  • 第七章 php自定义函数实现代码

    关于“第七章 php自定义函数实现代码”的完整攻略,我可以给你一份详细讲解。具体内容如下: 一、什么是PHP自定义函数? 在PHP中,函数是指一段可以重复利用的程序代码块,可以接收输入的参数并根据这些参数进行计算,并将计算结果输出。而PHP自定义函数是指我们自己编写的函数,用于解决特定问题或完成特定任务。 自定义函数的主要优点在于: 可以提高代码的重用性,减…

    PHP 2023年5月27日
    00
  • php对文件进行hash运算的方法

    首先要明确的是,PHP中常用的文件hash运算有两种,一种是MD5算法,另一种是SHA1算法。 使用MD5算法对文件进行hash运算 使用MD5算法对文件进行hash运算,可以生成一个128位的hash值。 具体实现步骤如下: 步骤1:打开文件 在PHP中,打开文件需要使用fopen函数。示例代码如下: $handle = fopen("path/…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部