В этой задаче необходимо реализовать ленивую коллекцию.

src\Enumerable.php

Реализуйте класс Enumerable, который работает похожим образом, что и Collect, но предназначен для обработки коллекций ассоциативных массивов. Основная особенность работы данного класса заключается в том, что он использует lazy вариант обработки.

Примеры

<?php

$elements = [
    ['key' => 'value', 'year' => 1932],
    ['key' => '', 'year' => 1100],
    ['key' => 'value', 'year' => 32]
];
$coll = Enumerable::wrap($elements);
$newColl = $coll->where('key', 'value')->where('year', 1932);
// Эта функция не сохраняет ключи
$newColl->all(); // ['key' => 'value', 'year' => 1932]

Подсказки

  • Функции, которые нужно реализовать, описаны в интерфейсе EnumerableInterface
  • Усложнённый вариант: добавьте мемоизацию
Успешных завершений: 78%

Для полного доступа к упражнению, нужна профессиональная подписка

Профессиональная подписка откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, даст возможность обращаться за помощью к менторам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
115
курсов
892
упражнения
2241
час теории
3196
тестов

Последние код-ревью

Автор Дата обновления Версий
fedorsimakov 24 июля, 08:26 5
user-ae8be4f0efb14888 23 июля, 14:59 2
ava239 19 июля, 17:17 2
evgvfv 17 июля, 13:01 1
talovskiy 14 июля, 10:37 1