Intereting Posts
Автозагрузка классов в PHPUnit с использованием Composer и autoload.php Внедрение PDF-файла на веб-страницу без использования встроенного средства просмотра PDF iOS 5- отправка json с использованием NSURLRequest и разбор в php через $ _POST Шаблон клипа и переключатели – выберите сначала в цикле foreach PhantomJS – «небезопасно-eval» не является разрешенным источником сценария в следующей директиве политики безопасности контента do array () уничтожить все предыдущие значения? javascript включает файл в onclick PHP – быстрый способ удалить все символы, не отображаемые в браузере из строки utf8 Symfony3: Fatal error: Class 'AppKernel' не найден. \ Bin \ console Разбор NSString как JSON Как обнаружить диагональную победу в игре «5 в ряд» (PHP) Получить следующий элемент в цикле foreach Как отправить запрос приложения всем пользователям с помощью диалогового окна запроса Facebook? Как вызвать одну функцию контроллера в другом контроллере в codeigniter вывод dropbox api должен быть изменен в моем коде

PHP: key-> значение из двух элементов массива

В принципе, у меня есть массив, в котором каждый элемент представляет собой пару ключевых / значений элементов, например:

[myArray] => Array [0] => Array [id] => 121 [name] => Value1 [1] => Array [id] => 125 [name] => Value2 [2] => Array [id] => 129 [name] => Value3 .... 

И я хочу преобразовать это в:

 [myArray] => Array [121] => Value1 [125] => Value2 [129] => Value3 .... 

поэтому элемент «id» становится ключом, а элемент «name» становится значением. Есть ли у PHP что-то встроенное (или есть хитроумный трюк), чтобы сделать это? Я бы хотел избежать очевидного цикла foreach (), если есть что-то более чистое …

PHP 5.5 имеет функцию array_column() которая может сделать это для вас, если вам посчастливилось запустить это уже. Разработчик, который представил его, также имеет версию, совместимую с версиями, которую вы можете скачать для более ранних версий PHP.

Тем не менее, это довольно легко свернуть самостоятельно или просто использовать цикл foreach для конкретного случая, в котором вы нуждаетесь.

Если у вас есть доступ к array_column вы можете:

 array_column($myArray, 'name', 'id') 

Я думаю, что foreachнамного лучший вариант.