欢迎访问宙启技术站
智能推送

PHP函数:array_map-对数组的每个元素应用回调函数

发布时间:2023-06-24 12:53:56

array_map是一个很有用的PHP函数,它能够对数组的每个元素应用一个回调函数,得到一个新的数组。这个函数在处理数组数据时非常常用,例如处理表单数据,从数据库中查询数据等。

示例:

function square($num) {
  return $num * $num;
}

$array = [1, 2, 3, 4, 5];
$newArray = array_map("square", $array);

print_r($newArray); // 输出 [1, 4, 9, 16, 25]

在这个示例中,我们定义了一个名为square的回调函数,它将传入的参数平方并返回结果。然后,我们定义了一个数组,它包含数字1到5。使用array_map函数,我们将square函数应用到这个数组的每个元素上,并生成一个新的新数组,新数组中的元素是原数组元素的平方。

当然,array_map不仅仅可以接受一个回调函数名称,还可以使用匿名函数或自定义函数。

示例:

$array = [1, 2, 3, 4, 5];
$newArray = array_map(function($num) {
  return $num * $num;
}, $array);

print_r($newArray); // 输出 [1, 4, 9, 16, 25]

在这个示例中,我们使用了一个匿名函数来代替了之前的square函数。array_map函数接受一个匿名函数,将其应用到数组的每个元素上,并生成一个新的数组,新数组中的元素是原数组元素的平方。

除了使用单个数组作为array_map函数的参数,我们还可以将多个数组作为参数传递给它。在这种情况下,回调函数将接收来自每个数组的相应元素,依次传递给它,直到数组最短的那个参数的元素用完为止。

示例:

function add($a, $b) {
  return $a + $b;
}

$array1 = [1, 2, 3, 4, 5];
$array2 = [6, 7, 8, 9, 10];
$newArray = array_map("add", $array1, $array2);

print_r($newArray); // 输出 [7, 9, 11, 13, 15]

在这个示例中,我们定义了一个名为add的回调函数,它将接收两个参数并将它们相加返回结果。然后,我们定义了两个数组,将它们作为array_map的参数传递给它。array_map函数将使用add函数将两个数组的每个元素相加,并生成一个新的新数组,新数组中的元素是原数组元素相加的结果。

当数组中的元素是另一个数组时,我们可以使用多维数组的方式传递给array_map函数。

示例:

$array = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];
$newArray = array_map(function($item) {
  return $item[0] * 2;
}, $array);

print_r($newArray); // 输出 [2, 8, 14]

在这个示例中,我们定义了一个多维数组,包含3个长度为3的子数组。使用array_map函数,我们将一个匿名函数应用到这个多维数组的每个子数组中,并生成一个新的一维数组,其中每个元素是子数组的 个元素的2倍。

总结:

array_map是一个非常实用的PHP函数,它可以将一个回调函数应用到数组的每个元素上,并生成一个新的数组。使用它,我们可以轻松地处理数组数据,从而简化一些常见的任务,如处理表单数据,从数据库中查询数据等。