📅  最后修改于: 2023-12-03 15:29:28.416000             🧑  作者: Mango
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()
的第二个参数。此回调函数基于元素的值,它应该返回 true
或 false
。此方法返回长度大于等于5的新数组,包含 "banana","kiwi" 和 "orange"。
array_filter()
函数是PHP开发人员的一个非常有用的工具。它能够过滤数组,并返回一个由过滤后的元素组成的新数组,非常方便。您还可以使用回调函数来实现更多的过滤策略。