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

yizhihongxing

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日

相关文章

  • MATLAB生成复数的方法

    生成复数在MATLAB中非常简单,可以使用以下几种方法: 1. 使用角度和模数 使用 abs 和 angle 函数来定义一个复数的模数和角度,并存储在 r 和 theta 变量中。然后使用 complex 函数将它们组合为一个复数。 r = 3; % 定义模数为3 theta = pi/4; % 定义角度为 pi/4 z = complex(r*cos(th…

    PHP 2023年5月27日
    00
  • php中使用url传递数组的方法

    当我们想要通过URL向PHP获取数组时,有几种方式可以实现: 1. 序列化和URL编码 我们可以将待传递的数组序列化为字符串,并使用urlencode函数进行URL编码,然后将编码后的字符串作为参数以指定键名传递给PHP脚本。在PHP脚本内,我们可以使用urldecode函数解码该字符串,并使用unserialize函数将其还原为数组。 示例代码: // 原…

    PHP 2023年5月26日
    00
  • php常用字符串查找函数strstr()与strpos()实例分析

    PHP常用字符串查找函数:strstr()与strpos()实例分析 简介 在PHP中,字符串是经常出现的数据类型之一。而字符串常用的操作之一就是查找。在查找字符串中是否包含另一个字符串时,PHP提供了两个常用的函数:strstr()和strpos()。 请注意区分,strstr()和strpos()的返回值有所不同,具体解释见下文分析。 下面我们分别介绍这…

    PHP 2023年5月26日
    00
  • PHP中in_array函数使用的问题与解决办法

    接下来我将详细讲解一下“PHP中in_array函数使用的问题与解决办法”的完整攻略。 问题描述 在使用PHP中的in_array()函数判断是否存在某个元素时,有时候会出现判断不准确的情况。这种情况通常出现在类型比较严格的场景下,例如:判断某个元素是否在数组中时,数组中存储的是字符串类型,而需要查找的元素是整型或者浮点型等其他类型数据。 解决办法 1. 使…

    PHP 2023年5月26日
    00
  • PHP简单实现生成txt文件到指定目录的方法

    一、简介 在 PHP 中,实现生成 .txt 文件到指定目录需要以下步骤: 生成文件名; 打开文件; 写入内容; 关闭文件。 二、步骤详解 以下是详细的代码实现过程。 生成文件名 我们可以使用日期+随机数的方式来保证文件名不重复。代码如下: $filename = "file_".date("Ymd_His").&qu…

    PHP 2023年5月26日
    00
  • 详解php中的类与对象(继承)

    详解php中的类与对象(继承) 类和对象 php中的类是一种抽象的概念,用来描述某些具有相同属性和方法的实物,其实例化后就成为了对象。一个类可以包含多个方法和属性,其中方法用于定义能够执行的操作,属性则用来存储对象的状态。 在php中,我们可以使用class关键字定义一个类。例如,下面定义了一个名为Person的类: class Person{ public…

    PHP 2023年5月25日
    00
  • 解析PHP生成静态html文件的三种方法

    好的!下面是详细的解析PHP生成静态HTML文件的三种方法完整攻略。 1. 使用ob_start和ob_get_clean函数 首先,我们可以使用PHP中的ob_start()和ob_get_clean()函数来把生成的HTML代码存储为字符串,最后再将其写入到静态HTML文件中。 示例代码: <?php ob_start(); // 开启页面缓存 /…

    PHP 2023年5月26日
    00
  • PHP pthreads v3在centos7平台下的安装与配置操作方法

    PHP pthreads v3在CentOS 7平台下的安装与配置操作方法 在CentOS 7平台下安装、配置PHP pthreads v3需要经过以下几个步骤: 安装必要的软件包 安装PHP扩展库 配置PHP 测试 下面对以上几个步骤进行详细讲解。 1. 安装必要的软件包 在安装PHP扩展库之前,需要先安装一些必要的软件包,包括gcc、make、php-d…

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