Array reduce offers a way to transform data.
Please look at the array below. The array has 4 nested array's.
The nested array's have the same keys. Only the value is different.
This code transforms the whole array. See below.
$array = array(
0 => array('id' => '100', 'name' => 'Henk', 'age' => '30'),
1 => array('id' => '101', 'name' => 'Piet', 'age' => '33'),
2 => array('id' => '102', 'name' => 'Wim', 'age' => '43'),
3 => array('id' => '103', 'name' => 'Jaap', 'age' => '53'),
);
$arr = array_reduce($array, function($carry, $item){
$arr = array(
'id' => $item['id'],
'value' => $item['name'],
);
$id = $item['id'];
$carry[$id] = $arr;
return $carry;
}, array());
var_dump($arr);
// OUTPUT
array (size=4)
100 => array (size=2)
'id' => string '100' (length=3)
'value' => string 'Henk' (length=4)
101 => array (size=2)
'id' => string '101' (length=3)
'value' => string 'Piet' (length=4)
102 => array (size=2)
'id' => string '102' (length=3)
'value' => string 'Wim' (length=3)
103 => array (size=2)
'id' => string '103' (length=3)
'value' => string 'Jaap' (length=4)