Есть такой массив:
$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);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Даны три числаНайдите их среднее арифметическое
Мне нужно в определенный момент добавить данные в БДНужен файл cron
Есть строка Покупка паетов: Ntv_56°E, Xtra TV 4W на сумму 0066667 $