Определенно, будет полезно на больших наборах данных или в циклах.
Повторю основной принцип:
// Создается новый ассоциативный массив,
// где в качестве ключей получается искомое значение
foreach(array_values($haystack) as $v)
$new_haystack[$v] = 1;
// Теперь можно определить вхождение по ключу
if(isset($haystack[$needle]))
reutrn true;
Как утверждает автор, такой подход ускоряет работу примерно в 280 раз.
Для малых массивов я бы использовать такой обработчик не стал, но вот в каких-либо импортах или обработках данных самое то.
скрипт PHP генерировал данные в формате CSV и передавал их скрипту на Python с помощью exec. Время выгрузки сократилось до 15 секунд, память практически не использовалась.
так и произошло) и в итоге питон победил))
PHPExcel - это капец, в нем можно только с xlsx работать, которые по сути xml, а файлы старого экселя махом всю память съедают
Алексей Минеев, просто непонятно зачм питон - если в php из коробки есть работа с csv
xls сам по себе формат не поточный и давно устарел. так что говорим клиенту - покупай памяти достаточно если так нужен формат xls. еще лучше windows и ms office если хотят чтобы файлы были 100% совместимы и без проблем открывалсь.
ну а для тех кто шарит в экономии денег - есть xlsx https://github.com/mk-j/PHP_XLSXWriter поддерживает поточную запись. и не имеет проблем с отжиранием памяти. к тому же не конфилктует с требованием bitrix mbstring.func_overload
к тому же если у вас питон - это яно не шаредхостинг - и по мне так дешевле памяти добавить чем вносить дополнительные затраты в виде разработки и поддержки на питоне.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».