В PHP существует несколько методов фильтрации элементов массива. Вот некоторые из часто используемых методов:
- array_filter(): эта функция позволяет фильтровать массив на основе функции обратного вызова. Функция обратного вызова определяет критерии фильтрации, и в результирующий массив включаются только те элементы, которые удовлетворяют этим критериям.
Пример:
$numbers = [1, 2, 3, 4, 5];
$filtered = array_filter($numbers, function($num) {
return $num % 2 == 0; // Filter even numbers
});
print_r($filtered); // Output: Array ( [1] => 2 [3] => 4 )
- array_values(): эта функция численно переиндексирует массив после фильтрации, удаляя любые пробелы в ключах. Его можно использовать в сочетании с другими методами фильтрации для получения сжатого массива.
Пример:
$fruits = ['apple', 'banana', 'cherry', 'durian'];
$filtered = array_values(array_filter($fruits, function($fruit) {
return strlen($fruit) > 5; // Filter fruits with more than 5 characters
}));
print_r($filtered); // Output: Array ( [0] => banana [1] => cherry )
- array_reduce(): эта функция перебирает массив и применяет функцию обратного вызова, чтобы уменьшить массив до одного значения. Его можно использовать для фильтрации, задав начальное значение в виде пустого массива и добавив элементы, соответствующие критериям фильтрации.
Пример:
$ages = [25, 30, 18, 42, 55];
$filtered = array_reduce($ages, function($carry, $age) {
if ($age >= 30) {
$carry[] = $age; // Filter ages greater than or equal to 30
}
return $carry;
}, []);
print_r($filtered); // Output: Array ( [0] => 30 [1] => 42 [2] => 55 )