#php #массивы
Здравствуйте.
Имеется двумерный массив следующего вида:
array(211) {
[0]=>
array(3) {
["name"]=>
string
["type"]=>
string
["id"]=>
int(54609)
[1]=>
array(3) {
["name"]=>
string
["type"]=>
string
["id"]=>
int(2849)
[2]=>
array(3) {
["name"]=>
string
["type"]=>
string
["id"]=>
int(59393)
и т.д.
}
Необходимо ключи массивов первого уровня переименовать в значение ["id"], то есть
новый массив должен выглядеть так:
array(211) {
[54609]=>
array(3) {
["name"]=>
string
["type"]=>
string
["id"]=>
int(54609)
[2849]=>
array(3) {
["name"]=>
string
["type"]=>
string
["id"]=>
int(2849)
[59393]=>
array(3) {
["name"]=>
string
["type"]=>
string
["id"]=>
int(59393)
и т.д.
}
Как это можно реализовать?
Ответы
Ответ 1
Нужно перебрать существующий массив ($old_arr) и на его основе создать новый ($new_arr). $new_arr = []; foreach ($old_arr AS $key => $val) { $new_arr[$val['id']] = $val; }Ответ 2
Для PHP версии 5.5 и выше можно так: $input = array( array('id' => 357), array('id' => 578), ); $columnKey = null; $indexKey = 'id'; $output = array_column($input, $columnKey, $indexKey);Ответ 3
$in=[....]; $out=[]; foreach($in as $value)$out[$value['id']]=$value;Ответ 4
Более красивый способ, чем цикл: $result = array_combine(array_column($myArray, 'id'), $myArray);
Комментариев нет:
Отправить комментарий