array_map 第一个参数是类的一个方法
时间: 2023-12-03 14:42:19 浏览: 93
`array_map` 函数的第一个参数可以传递一个闭包、一个函数名或一个类的方法。如果传递的是一个类的方法,需要以数组的形式传递,第一个元素是类的实例或类名,第二个元素是方法名。例如:
```php
class Math {
public function square($x) {
return $x * $x;
}
}
$math = new Math();
$array = [1, 2, 3, 4, 5];
$squares = array_map([$math, 'square'], $array);
print_r($squares); // 输出 [1, 4, 9, 16, 25]
```
在上面的例子中,我们定义了一个 `Math` 类,其中有一个 `square` 方法用于计算一个数的平方。然后我们创建了一个 `Math` 的实例 `$math`,并将其与 `square` 方法一起传递给 `array_map` 函数,得到了一个由 `$array` 中每个元素的平方组成的新数组 `$squares`。
相关问题
array_map()
`array_map()` 是 PHP 中的一个内置函数,用于对数组中的每个元素应用一个用户自定义的回调函数,并返回一个新的数组,新数组包含了原数组元素经过回调处理后的结果。它的基本语法如下:
```php
array_map(callback_function, array1, [array2, ...])
```
其中:
- `callback_function`:这是你需要应用于数组元素的函数,它可以是一个普通函数,也可以是一个闭包(匿名函数)。
- `array1`:要被映射处理的第一个数组。
- `array2`:可选,如果有多个数组,它们会被传递给回调函数作为额外的参数。
例如,如果你有一个数字数组,你可以使用 `array_map()` 来将每个数乘以2:
```php
$numbers = [1, 2, 3, 4];
$multipliedNumbers = array_map('double', $numbers);
print_r($multipliedNumbers); // 输出:Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
```
在这个例子中,`double` 函数就是一个简单的回调函数,它接收一个参数并将其翻倍。
php array_map 带key
`array_map` 函数可以用于对数组中的每个元素都应用一个回调函数,返回一个处理后的新数组。默认情况下,`array_map` 函数的回调函数只接受每个元素的值作为参数,不接受键。
如果你想在回调函数中访问元素的键,可以通过将原始数组的键和值传递给回调函数来实现。例如:
```php
$array = ['foo' => 1, 'bar' => 2, 'baz' => 3];
$newArray = array_map(function ($key, $value) {
return $key . ':' . $value;
}, array_keys($array), $array);
print_r($newArray);
```
这会输出:
```
Array
(
[0] => foo:1
[1] => bar:2
[2] => baz:3
)
```
在这个例子中,我们使用 `array_keys` 函数获取原始数组的所有键,并将它们作为第一个参数传递给回调函数。回调函数的第二个参数是原始数组中对应键的值。在回调函数内,我们将键和值组合成一个字符串,并将其作为处理后的新数组的元素返回。最终,`$newArray` 中包含了原始数组中每个元素的键和值组合而成的字符串。
阅读全文