Язык PHP обладает широкими возможностями для работы с массивами и иными списочным структурами данных. Одних только функций для работы с массивами в стандартной библиотеке PHP за 70 штук .

Обработка массивов в PHP в ООП стиле

Язык 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, однако учтите то, что каждый последующий вызов методов работает не с исходным массивом, а с массивом полученным на предыдущей итерации.