Предположим, что у вас есть ассоциативный массив
$hash['Fruit'] = 'Apple'; $hash['Name'] = 'Jeff'; $hash['Car'] = 'Ford';
и вы не можете изменить порядок, в котором эти переменные создаются. Итак, автомобиль всегда добавляется в массив после имени и т. Д. Какой самый красивый способ добавить / перенести автомобиль в начало ассоциативного массива вместо конца (по умолчанию)?
$hash = array('Car' => 'Ford') + $hash;
ksort()
?
Но почему вас беспокоит внутренний порядок массива?
array_reverse($hash, true);
Это не очень прямое решение, а одно:
$value = end($hash); $hash = array(key($hash) => $value) + $hash;
Еще один трюк –
$new_items = array('Car' => 'Ford'); $hash = array_merge($new_items, $hash);
Вы также можете упорядочить новые ключи массива. Предположим сначала автомобиль, а затем другое поле (скажем, Id), тогда массив останется таким …
$new_items = array('Car' => 'Ford','Id'=>'New Id'); $hash = array_merge($new_items, $hash);
Массив будет похож на
$hash['Car'] = 'Ford'; $hash['Id'] = 'New Id'; $hash['Fruit'] = 'Apple'; $hash['Name'] = 'Jeff';