📜  在 php 中过滤数组并传递额外的参数 - PHP (1)

📅  最后修改于: 2023-12-03 15:37:26.169000             🧑  作者: Mango

在 PHP 中过滤数组并传递额外的参数 - PHP

在 PHP 中,过滤数组是非常常见的任务。可以使用 array_filter() 函数来过滤数组,该函数将数组中的每个元素传递到回调函数中,该函数将根据需要返回处理后的值。但是,在某些情况下,您可能还需要传递额外的参数到回调函数中。

使用 array_filter() 过滤数组

使用 array_filter() 函数可以过滤数组中的元素。下面是一个简单的示例,它将过滤数组中的奇数。

$numbers = [1, 2, 3, 4, 5];

$filtered_numbers = array_filter($numbers, function($number) {
    return $number % 2 == 0;
});

print_r($filtered_numbers);

输出:

Array
(
    [1] => 2
    [3] => 4
)

在上面的示例中,使用 array_filter() 过滤了 $numbers 数组中的奇数。回调函数以每个数组元素为参数,并返回布尔值表示元素是否应包含在过滤结果中。

传递额外的参数

有时候,您可能需要在回调函数中使用额外的参数来过滤数组。可以通过在 array_filter() 函数中传递第三个参数来实现这一点。第三个参数将作为回调函数的参数之一,并且必须是一个单独的值或数组。

下面是一个例子,它过滤了一个数组,仅返回包含大于特定值的元素:

$numbers = [1, 2, 3, 4, 5];

$min_value = 3;

$filtered_numbers = array_filter($numbers, function($number) use ($min_value) {
    return $number >= $min_value;
});

print_r($filtered_numbers);

输出:

Array
(
    [2] => 3
    [3] => 4
    [4] => 5
)

在上面的示例中,$min_value 变量被传递给了回调函数。要在回调函数中使用 $min_value 变量,必须使用 use 关键字将其包含在函数中。现在,回调函数将只返回大于或等于 $min_value 的数字。

结论

使用 array_filter() 函数可以非常容易地在 PHP 中过滤数组。如果您需要传递额外的参数到回调函数中,则可以在 array_filter() 函数中使用第三个参数,这将作为回调函数的参数之一。