<?php
// Everything you enter here will be executed by our servers. Try it!
$data = array(
array(
'id' => 1,
'name' => 'bob',
'product_id' => 1,
'product' => 'laptop',
'price' => 999,
),
array(
'id' => 1,
'name' => 'bob',
'product_id' => 2,
'product' => 'mouse',
'price' => 15,
),
array(
'id' => 1,
'name' => 'bob',
'product_id' => 3,
'product' => 'keyboard',
'price' => 25,
)
);
$output = array();
$userColumnIntersect = array_flip(array(
'id',
'name',
));
$productColumnIntersect = array_flip(array(
'product',
'price',
));
foreach($data as $row){
$id = $row['id'];
if(!isset($output[$id])){
$output[$id] = array_intersect_key($row, $internalOrderColumnIntersect);
$output[$id]['products'] = array();
}
$productId = $row['product_id'];
if(!isset($output[$id]['products'][$productId])){
$productDataRow = array_intersect_key($row, $productColumnIntersect);
$output[$id]['products'][$productId] = $productDataRow;
}
}
echo '<pre>';
print_r($output);
preferences:
46.59 ms | 402 KiB | 5 Q