Обработка массивов в PHP в ООП стиле
![Обработка массивов в PHP в ООП стиле](/images/articles/php-array-stream-processing.jpg)
Язык PHP обладает широкими возможностями для работы с массивами и иными списочным структурами данных. Одних только функций для работы с массивами в стандартной библиотеке PHP за 70 штук.
Конечно они могут использоваться во всех случаях, когда необходимо сделать какие-либо преобразования в массиве, но их использование не так удобно. Поэтому возникает потребность в обработке массивов в ООП стиле в PHP. И такие библиотеки есть. Одна из них - это библиотека fetzi/php-streams, которая позволяет манипулировать массивами в объектно-ориентированном стиле.
Устанавливается следующим образом:
composer require fetzi/php-streams
Код:
<?php
// подключаем библиотеку
require_once 'vendor/autoload.php';
// пространство имен
use Jopic\Stream;
// создаем поток из массива
$stream = Stream::ofList([12,23,45,65,64,25]);
// фильтруем все числа, оставляя только четные
$evens = $stream -> filter(function($number) {
return $number % 2 == 0;
}) -> toArray();
// среднее значение списка
$avg = $stream -> avg();
// максимальное значение
$max = $stream -> max();
// умнажаем на два каждое число в массиве
$map = $stream -> map(function($number) {
return $number * 2;
})
-> collect('| '); // собираем в строку
// выводим на печать
print $map;
Вот таким образом можно поточно обрабатывать массивы в PHP, однако учтите то, что каждый последующий вызов методов работает не с исходным массивом, а с массивом полученным на предыдущей итерации.
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.