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的array_multisort()使用方法介绍

    下面我来详细讲解“php的array_multisort()使用方法介绍”的完整攻略。 什么是array_multisort()函数? array_multisort()函数是PHP中用于对多个数组或者多维数组进行排序的函数。它可以同时对多个数组进行排序,或者对多维数组按照指定规则进行排序。 array_multisort()函数的语法 array_mult…

    PHP 2023年5月26日
    00
  • PHP 爬取网页的主要方法

    下面我将详细讲解 PHP 爬取网页的主要方法。 一、概述 爬取网页可以使用多种编程语言,而 PHP 是其中之一。PHP 爬取网页的主要方法包括以下几种: 使用 CURL 库 使用 Simple HTML DOM 库 使用正则表达式 二、CURL 库 CURL(Client URL Library)是一个常用的多协议文件传输库,支持多种协议,包括 HTTP、F…

    PHP 2023年5月27日
    00
  • 微信小程序 wx.getUserInfo引导用户授权问题实例分析

    下面就来详细讲解一下“微信小程序 wx.getUserInfo引导用户授权问题实例分析”的完整攻略。 1. 关于wx.getUserInfo wx.getUserInfo 是小程序中用于获取用户信息的接口,包含用户昵称、头像等信息。在不久前,这个接口是不需要用户授权的,但是现在微信官方调整了用户信息的规范。根据新规范,开发者必须在调用 wx.getUserI…

    PHP 2023年5月30日
    00
  • PHP编码规范-php coding standard

    PHP编码规范,也被称为PHP Coding Standard,是指为了保持PHP代码的统一性和可读性而约定的一系列规范。它定义了变量命名、代码缩进、函数库的使用等方面的规则。在团队协作、代码交接、代码维护等过程中,遵守PHP编码规范能够提高代码质量和效率,减少出错率。 以下是PHP编码规范的完整攻略: 1. 缩进 每个缩进层次使用4个空格,而不是Tab键。…

    PHP 2023年5月27日
    00
  • php数组随机排序实现方法

    当我们需要对一个 PHP 数组进行随机排序时,可以使用 shuffle() 函数。shuffle() 函数用于将数组的元素随机排序,打乱数组顺序。 下面是对数组进行随机排序的示例代码: // 定义一个需要排序的数组 $my_array = array("苹果", "香蕉", "葡萄", "…

    PHP 2023年5月26日
    00
  • 解析PHP处理换行符的问题 \r\n

    文本中的换行符在不同的操作系统中可能有区别,例如Windows系统使用CR(回车符)和LF(换行符)作为换行符,而Unix-like系统只使用LF作为换行符。当在PHP代码中处理这些不同类型的换行符时,必须格外小心以确保代码的可移植性。 下面是解析PHP处理换行符的步骤: 1. 使用PHP提供的常量 PHP提供了两个常量在不同操作系统中处理换行符,分别是PH…

    PHP 2023年5月26日
    00
  • 测试php函数的方法

    测试PHP函数的方法可以分为手动测试和自动化测试两种方式。 手动测试 手动测试是指通过手动打开网页或者执行代码来测试PHP函数的正确性和可靠性。以下是手动测试的步骤: 准备输入数据:手动输入或者生成测试数据,确保测试数据的多样性和覆盖度。 准备测试代码:编写调用函数的代码和针对输入数据的测试用例。 运行测试代码:手动执行测试代码并观察输出结果是否符合预期。 …

    PHP 2023年5月27日
    00
  • PHP goto语句简介和使用实例

    PHP goto语句简介和使用实例 简介 goto语句是一种跳转语句,它能够使程序跳转到代码中的其他位置,而不受正常执行顺序的限制。在PHP中,可以使用goto语句来实现类似于C语言中的switch语句的效果,或者用于简化一些复杂嵌套条件语句的代码。 使用goto语句时,需要注意以下几点: 应该避免在代码中过度使用goto语句,否则会导致代码的可读性和可维护…

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