А проблема в том что получив класс с 200 полями, сбиндить это таблицей базы данных, а потом это сбиндить с таблицей пользовательского интерфейса, деревом каталогов, и таймлайном.
Это я пытаюсь выполнить задание, где мне сказали, что у меня цикл крутится один и тот же в каждой функции, и его надо вынести куда-то отдельно, чтобы был проход один раз.
Вот я не понимаю, с этими функциями это реально сделать или нет, и все итак нормально...
private int $averageWordsCount = 0;
private array $arSections = [];
function postsProcess(): void
{
$allWordsCount = 0;
foreach ($this->posts as $item) {
$allWordsCount += count(preg_split('/\s+/', $item['description']));
$this->arSections[$item['category']][] = $item;
}
$this->averageWordsCount = $allWordsCount / count($this->posts);
}
function countAverageNumberOfWords(): int
{
return $this->averageWordsCount;
}
function getItemsSortBySections(): array
{
return $this->arSections;
}
Для краткости там могло быть значение с нулевой датой.
Очевидно язык программирования эволюционирует от сложного к простому. Чтобы тоже самое пришлось писать меньше в разы.
array(1) {
["id"]=>0
}
Видимо у вас кроме "теоретических" задачек когда нужен reset/key/next/prev/... вместо итератора - нет.
А я где-то написал, что итератор не перебирает значения?
Передергивание высказываний ... ммм обожаю.
Foreach ограничен, о чем говорит его название "для всех", нужно что-то иное, он уже не подходит.
это чьи слова?
Ну для начала если у вас в памяти массив на 1М значений, то foreach меньшая из проблем :) А в какой ситуации нам неважен сам элемент, а важен лишь его порядок? Разве что при пагинации, но возвращаемся к вопросу зачем вообще 1М значений в памяти?
Эээ итератор делает то что он должен - перебирает значения. Если нужно "что-то иное", то по определению итератор не подходит т.к. он не "что-то иное".
а чем конструкция if (условие) continue не устраивает внутри foreach?
Foreach при любом раскладе удобнее чем процедурные функции, которые ИМХО рудимент без полезной нагрузки.
Ну разве что, вместо "true — клик разрешён, false — клик запрещён" достаточно указать что это тип bool. И посмотрите как оформляются комментарии к переменным в вашем языке.
Кодирование - это только один из этапов разработки, лишь у новичков уходит на него 95% времени. Возможно вы начали это понимать.