Intereting Posts
Как отладить IE11 APPCACHE Mysql + php со специальными символами типа «(Апостроф)» и «(котировочная метка) Как прослушивать TCP-порт с помощью PHP? Как запустить исполняемый файл с сайта PHP в качестве конкретного пользователя Windows? В чем смысл интерфейсов на слабо типизированном языке, например PHP? как решить проблему curlexception 6: ошибка поиска имени тайм-аут в facebook new graph api Ошибка при печати Gzzle Curl 60 SSL не может получить локальный эмитент Получить информацию о мероприятии с идентификатора ресурса в режиме push-уведомления Я получаю ошибку при загрузке файла расширения .txt и файлов расширения .doc Можно ли отображать RTF-файл внутри веб-страницы с помощью PHP? Сортировка по ключу в многомерном массиве с php Бесплатные удаленные серверы smtp? PHP отправляет зашифрованные данные по URL-адресу Как получить доступ к нескольким свойствам с помощью магического метода (__ get & __set)? как считать пространство в текстовом выражении в php

Какой самый элегантный способ перестроить ассоциативный массив?

Предположим, что у вас есть ассоциативный массив

$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';