У меня многомерный массив, который выглядит так:
массив ( [0] => Массив ( [ClientID] => ec2173de2134fdsfg4fsdffcb4b5205 [Имя] => Виджеты ABC ) [1] => Массив ( [ClientID] => e5dfgfdg2d760f640aadfgdfgdfg47b [Имя] => Acme Co ) [2] => Массив ( [ClientID] => b9dfgsdfg419085c3sdgffdsgfdg313 [Имя] => 4321 Corp ) )
Я хотел бы перейти на следующее:
массив ( ec2173de2134fdsfg4fsdffcb4b5205 => Виджеты ABC e5dfgfdg2d760f640aadfgdfgdfg47b => Acme Co b9dfgsdfg419085c3sdgffdsgfdg313 => 4321 Corp )
Каков наилучший способ сделать это? Кроме того, будет ли я лучше хранить массив в его исходном формате и конвертировать в другие форматы по мере необходимости? Спасибо за любую помощь
$flat = array(); foreach($multidim as $item) $flat[$item['ClientID']] = $item['Name'];
Если бы вам было лучше хранить оригинальную форму, в общем случае нельзя ответить. Вы должны сохранить его, если вам это нужно.
Похоже, вы создаете хеш-таблицу с исходными данными. Хэш-таблицы очень быстрые для доступа и вставки отдельных элементов данных. Однако вы не можете запускать запросы к данным, содержащимся в записях, – вы можете получать только на основе уникального ключа или вставки на основе сгенерированного ключа.
Вы можете использовать исходный формат со всеми его полями как «back-end» и генерировать хэш-таблицу, подобную той, которую вы продемонстрировали. Откат состоит в том, что каждый раз, когда эта таблица генерируется, она стоит процессорных циклов.
Если вы выбросите эти данные в базу данных, механизм БД будет обрабатывать создание стандартных таблиц данных (например, вашего первого) и хеш-таблиц (например, вашего второго) по мере необходимости для конкретного запроса, который вы используете. Вы также можете заставить его создавать хеш-таблицы на основе определенного столбца базы данных.