2017-01-12 2 views
0

Простой вопрос сегодня!PHP - это ksort(), необходимый при использовании значений массива только индивидуально?

Я определил значения в массиве не последовательно, другими словами 2 => 'marmosets' определен до 0 => cats и 1 => dogs. Я понимаю, что ключи будут назначаться должным образом (то есть значение marmosets действительно будет ключевым 2 не ключевым 0, хотя оно определено первым), но мой массив будет «не в порядке», так что будет выводиться print_r():

2 => marmosets 
0 => cats 
1 => dogs 

И если я хочу поместить их в цифровую последовательность ключами, то ksort() выполнит эту работу.

(a) Правильно ли я понимаю? (b) Если я использую эти значения отдельно и никогда не должен выводить список, есть ли какой-либо вред/эффект при пропуске ksort() и оставить их «не в порядке»?

ответ

1

(а) Да и (б) №

а) массивы в PHP упорядочены карты. Порядок по умолчанию останется в порядке ввода, пока вы не измените его, например. путем сортировки.

b) Если вы никогда не делаете ничего, что зависит от любого заказа, например. просто доступ к данным по ключам, порядок не имеет значения, поэтому нет никакого вреда.

1

Печать массива будет действительно печатать его в том порядке, в котором вы его создали, являются ли эти ключи числовыми или ассоциативными. Это можно проверить просто путем тестирования вашего примера. Нет никакого вреда в пропуске ksort, если вы не полагаетесь на фактический порядок массива. Однако также не рекомендуется использовать ksort. Если вы не имеете дело с огромным количеством данных, сортировка массива один раз в вашем приложении не окажет заметного влияния на производительность.

Смежные вопросы