Есть такой массив:
$rows2 = [
['id'=>'a1','update_at' => dddd,'create_at' => cccc],
['id'=>'a2','update_at' => dddd,'create_at' => cccc]
];
Как его сделать таким:
$rows2 = [
['a1' => ['update_at' => dddd,'create_at' => cccc]],
['a2' => ['update_at' => dddd,'create_at' => cccc]],
];
еще вариант для разнообразия
$rows2 = [
['id'=>'a1','update_at' => "dddd",'create_at' => "cccc"],
['id'=>'a2','update_at' => "dddd",'create_at' => "cccc"]
];
обратите внимание, у вас отсутствуют кавычки у значений в массиве.
$keys = array_column($rows2, 'id');
array_walk($rows2, function(&$v){ unset($v['id']);});
$result = array_combine($keys, $rows2);
print_r($result);
Ещё один вариант решения. Массив:
$rows2 = [
['id'=>'a1','update_at' => 'dddd','create_at' => 'cccc'],
['id'=>'a2','update_at' => 'dddd','create_at' => 'cccc']
];
Код:
$keys = array_column($rows2, 'id');
$vals = array_map(function($a)use($keys){ return array_diff($a,$keys); },$rows2);
$rows2 = array_combine($keys, $vals);
var_dump($rows2);
Результат:
array (size=2)
'a1' =>
array (size=2)
'update_at' => string 'dddd' (length=4)
'create_at' => string 'cccc' (length=4)
'a2' =>
array (size=2)
'update_at' => string 'dddd' (length=4)
'create_at' => string 'cccc' (length=4)
Можно трансформировать массив с помощью array_reduce
:
$rows2 = [
['id'=>'a1','update_at' => 'dddd','create_at' => 'cccc'],
['id'=>'a2','update_at' => 'dddd','create_at' => 'cccc']
];
$res = array_reduce($rows2, function($acc, $c){
$key = key($c); // Первый индекс ('id')
$id = $c[$key]; // Значение id
unset($c[$key]);// Удаляем id из строки
$acc[$id] = $c;
return $acc;
}, []);
var_dump($res);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Даны три числаНайдите их среднее арифметическое
Мне нужно в определенный момент добавить данные в БДНужен файл cron
Есть строка Покупка паетов: Ntv_56°E, Xtra TV 4W на сумму 0066667 $