Простой вопрос сегодня!
В итоге я определил значения в моем массиве не последовательно, другими словами 2 => 'marmosets'
определяется раньше 0 => cats
а также 1 => dogs
, Насколько я понимаю, ключи будут назначаться правильно (т.е. значение marmosets
действительно будет ключевым 2
не ключ 0
хотя он определен первым), но мой массив будет «не в порядке», так что print_r()
будет выводить:
2 => marmosets
0 => cats
1 => dogs
И что если я хочу поместить их в числовом порядке по ключу, ksort()
сделаю эту работу.
а) верно ли мое понимание?
(b) Если я использую только эти значения по отдельности, и мне никогда не нужно выводить список, есть ли вред / влияние при пропуске ksort()
и оставить их «не в порядке»?
(а) Да и (б) Нет.
а) Массивы PHP — это упорядоченные карты. Порядок по умолчанию останется порядком вставки, пока вы не измените его, например, сортировкой
б) если вы никогда не делаете ничего, что зависит от какого-либо заказа, например, просто доступ к данным по ключам, порядок не имеет значения, поэтому нет никакого вреда.
Печать массива действительно напечатает его в том порядке, в котором вы его создали, независимо от того, являются ли эти клавиши числовыми или ассоциативными. Это можно доказать, просто протестировав свой пример. Пропуск ksort не повредит, если вы не полагаетесь на фактический порядок массива. Однако использование ksort также не повредит. Если вы не имеете дело с огромными объемами данных, сортировка массива в вашем приложении не окажет заметного влияния на производительность.