Что быстрее json_decode или explode?
Информация хранится в виде 1,2,3
есть возможность изменить на [1,2,3]
В дальнейшем требуется из этих данных получить массив.
У меня есть два решения
1)Хранить данные 1,2,3
и выводить:
$test = '1,2,3';
$test = explode(',', $test);
print_r($test);
Результат:
Array ( [0] => 1 [1] => 2 [2] => 3 )
2)Хранить данные в виде [1,2,3]
и выводить:
$test = '[1,2,3]';
$test = json_decode($test);
print_r($test);
Результат:
Array ( [0] => 1 [1] => 2 [2] => 3 )
Какой из способов более щадящий, либо есть другой?
Обе одинаково быстрые. Не нужно занимать себя такими бессмысленными вопросами.
Функции не бывают медленными. Медленной бывает архитектура.
Отсюда вывод - если нас интересует производительность, мы должны следить за объемом данных, а не за тем, какая функция будет их обрабатывать.
Сама идея хранить массивы данных через запятую выглядит костылем, и скорее всего приведет к проблемам в будущем. Не со скоростью, а с написанием кода для их обработки.
json_decode на порядки более сложная и тяжелая функция, чем explode.
В explode производится всего один проход по строке с наполнением хэш-таблицы. В json_decode происходит синтаксический разбор средствами библиотеки bison с созданием большого количества промежуточных значений.
Но! Как верно отметил Ипатьев, если у вас не высоконагруженная система, то использовать одно вместо другого - это экономия на микро(если не нано)-секундах. С точки зрения организации данных json более предпочтителен.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите пожалуйста в консоли выводит слово "Принят" а в mysql записывает NaNВ чем может быть проблема?
в кастомном шаблоне битрикс, в его папке есть файл template_stylescss