Intereting Posts
Повторение папки приложения zf2 в «Модулях / Приложении» и «Модулях / Приложении / src / Приложение» Лучший способ обезопасить команду exec с введенными пользователем переменными Как проверить флажок в PHP PHP: Как отправить «JSON» с помощью метода PUT? PHP – генерация JavaScript URL-адрес динамической страницы динамической страницы PHP Создание PDF-файлов с использованием TCPDF, поддерживающих все языки, в особенности CJK Как установить третий оператор в String, который добавляет текст «Uhr»? MYSQL UPDATE: возможно ли сначала подтвердить некоторые поля? PHP – преобразование XML в массив в PHP – синтаксический анализ мыла xml в php и сохранение его в базе данных Ошибка возврата API-интерфейса Twitter: 34 (404) Как избежать isset () и empty () PHP Может ли клиент когда-либо устанавливать переменные $ _SESSION? Доступ к последовательному порту через php В чем разница между заголовком PHP и javascript window.location?

Как извлечь определенные ключи и значения массива в другой массив?

У меня есть массив массивов, например:

array( array(), array(), array(), array() ); 

массивы внутри основного массива содержат 4 ключа и их значения. Клавиши одинаковы для всех массивов:

 array( 'id' => 'post_1', 'desc' => 'Description 1', 'type' => 'type1', 'title' => 'Title' ); array( 'id' => 'post_2', 'desc' => 'Description 2', 'type' => 'type2', 'title' => 'Title' ); 

Поэтому я хочу создать другой массив и извлечь значения id и type и поместить их в новый массив следующим образом:

 array( 'post_1' => 'type1', 'post_2' => 'type2'); // and so on 

Ключами в этом массиве будут значения старых ключей массива id и их значение будет значением ключа type .

Так можно ли это достичь? Я попытался найти функции php.net Array, но я не знаю, какую функцию использовать?

И спасибо заранее.

Просто используйте хороший цикл ol:

 $newArray = array(); foreach ($oldArray as $entry) { $newArray[$entry['id']] = $entry['type']; } 

Недавно PHP добавил новую функцию к своим функциям массива, которая делает именно то, что вы хотели. Я отвечаю на это в надежде, что это может помочь кому-то в будущем с этим вопросом.

Функция, которая делает это: array_column . Чтобы получить то, что вы хотели, вы должны написать: array_column($oldArray, 'type', 'id');

Обратите внимание, что он был введен только в версии PHP 5.5.0, поэтому для его использования в более низких версиях PHP либо использовать принятый ответ, либо взглянуть на то, как эта функция была реализована в PHP и использовать эту библиотеку: https: // github. ком / Ramsey / array_column

Предположим, у нас есть массив $ oldArray, из которого мы хотим извлечь, а второй массив $ array – это тот, в котором мы будем хранить извлеченные значения, которые изначально пусты.

 $oldArray = array( 0 => array( 'id' => 'post_1', 'desc' => 'Description 1', 'type' => 'type1', 'title' => 'Title' ), 1 => array( 'id' => 'post_2', 'desc' => 'Description 2', 'type' => 'type2', 'title' => 'Title' ) ); $array = array(); //Blank array foreach(oldArray as $i => $oldarray){ $array[$i][$oldarray['id']] = $oldarray['type']; } 

Теперь $ array имеет пару ключ / значение, как показано ниже.

 array( 0 => array('post_1' => 'type1'), 1 => array( 'post_2' => 'post_2') );