Коллега в условиях задачи указал, что надо не просто выгрузить данные, а еще что то сними сделать причем построчно. на верное это не так очевидно из условия. Так вот при условии что надо построчно обработать данные, у нас получается, что либо надо выгружать весь массив в память, либо надо совершать обработку внутри цикла Так вот для того чтобы не обрабатывать данные в цикле и применяется генератор
while ($arItem = $obItems->fetch()) {
$result[$arItem['ID']] = getItemRes($arItem);
}
function getItemRes($item)
{
$res = [];
foreach ($item as $index => $row) {
if (!empty($row)) {
$tmp = unserialize($row);
if ($tmp != false) {
if (!empty($tmp['VALUE'])) {
$res[$index] = $tmp['VALUE'];
}
} else {
$res[$index] = $row;
}
}
}
return $res;
}
Это просто получить ID свойств по CODE. их в принципе можно и руками прописать. просто привык не пользоваться ID, т.к. на dev и на prod - ID могут различаться
Т.к. скрипт отрабатывает в фоне, альтернативу не рассматривал. Целей оптимизации этого скрипта добился. В качестве академического интереса, можно подумать
Опять же это уже больше исследовательский момент. Но так же можно будет попробовать. Можно и на чистом MySqQL написать.
похоже ребята словили хабр эффект. ;) Зашел на сайт. Сайт еле дышит. :) попробую через пару дней посмотреть свою генеалогию
Коллега в условиях задачи указал, что надо не просто выгрузить данные, а еще что то сними сделать причем построчно. на верное это не так очевидно из условия. Так вот при условии что надо построчно обработать данные, у нас получается, что либо надо выгружать весь массив в память, либо надо совершать обработку внутри цикла Так вот для того чтобы не обрабатывать данные в цикле и применяется генератор
не знаю насколько это кошерно....
Это просто получить ID свойств по CODE. их в принципе можно и руками прописать. просто привык не пользоваться ID, т.к. на dev и на prod - ID могут различаться
Т.к. скрипт отрабатывает в фоне, альтернативу не рассматривал. Целей оптимизации этого скрипта добился. В качестве академического интереса, можно подумать
Опять же это уже больше исследовательский момент. Но так же можно будет попробовать. Можно и на чистом MySqQL написать.
Спасибо за содержательный комментарий