📜  array_filter php (1)

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

PHP中的array_filter

array_filter() 是一个非常实用的PHP函数。它接受一个数组并返回一个由数组元素过滤后的新数组,保留符合要求的元素。

语法

函数的语法如下:

array_filter(array $array, callable $callback = null, int $flag = 0)
  • array: 必需。被过滤的数组。
  • callback: 可选。规定用来过滤数组的回调函数。 如果该参数是空的,则过滤掉所有空的元素。
  • flag: 可选。为此参数传递值可以改变函数的行为。可选的值有:
    • 0(默认值),这意味着仅按值过滤,而不重建数组并保留键名。
    • ARRAY_FILTER_USE_KEY,这意味着过滤时使用数组键名,而不是值。
示例

下面是使用 array_filter() 函数的示例。

$fruits = array("apple", "banana", "", "orange");

$new_fruits = array_filter($fruits);

print_r($new_fruits);

输出结果:

Array
(
    [0] => apple
    [1] => banana
    [3] => orange
)

在这个例子中,我们创建了一个包含4个元素的 $fruits 数组。然后,我们将其传递给 array_filter() 函数。我们没有传递第二个参数,只是使用函数默认的策略——过滤掉所有空的元素。因此,返回的 $new_fruits 数组只包含3个元素,即 "apple","banana" 和 "orange"。

使用回调函数过滤数组

通常,我们需要获得更具体的过滤策略,例如仅过滤长度大于等于5的字符串。这时候我们就需要使用回调函数。

下面的示例演示了如何使用回调函数过滤数组。

$fruits = array("apple", "banana", "kiwi", "orange");

$new_fruits = array_filter($fruits, function ($value) {
    return strlen($value) >= 5;
});

print_r($new_fruits);

输出结果:

Array
(
    [1] => banana
    [2] => kiwi
    [3] => orange
)

在这个例子中,我们传递了一个回调函数作为 array_filter() 的第二个参数。此回调函数基于元素的值,它应该返回 truefalse。此方法返回长度大于等于5的新数组,包含 "banana","kiwi" 和 "orange"。

结论

array_filter() 函数是PHP开发人员的一个非常有用的工具。它能够过滤数组,并返回一个由过滤后的元素组成的新数组,非常方便。您还可以使用回调函数来实现更多的过滤策略。