@krka92

Как эффективно работать с массивами в PHP?

Доброго времени суток)
У меня есть большой (> 25 Мб) XML файл с данными и его нужно обработать и записать данные в массив для дальнейшей обработки. Вопросов как анализировать XML не возникает. Так как в PHP не силен нужен именно совет, какой из путей выгоднее в плане производительности.
1 - Массив объектов. Возможно stdClass, возможно и объектов какого-либо класса.
$obj->vendor = "Nike";
$obj->vendorCode = 2384723;
$obj->description = "description";

.. и так далее
Или же использовать массив ассоциативных массивов
$el["vendor"] = "Nike";
$el["vendorCode "] = 2384723;
$el["description"] = "description";

-----

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

Заранее спасибо
  • Вопрос задан
  • 316 просмотров
Решения вопроса 1
xEpozZ
@xEpozZ
Веб-разработчик
Если коротко - выберите массивы в вашем случае
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Radmin
Для поточной обработки больших объёмов данных в условиях ограниченной памяти люди используют генераторы.

В этой статье показано, как, с помощью XMLReader можно распарсить большой xml-файл, не вычитывая его полностью в память.

Для понимания, как устроено хранение переменных в памяти, следует почитать PHP Internals.

По сабжу, в сухом остатке: используйте типизированные классы, чтобы было удобнее работать с данными.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы