我已经做了很多搜索,似乎无法找到一个有助于我的案例的例子。
我有一个像这样的数组:
array
0 =>
array
'name' => 'iPhone 5'
'data' => 7
1 =>
array
'name' => 'iPhone 5'
'data' => 5
2 =>
array
'name' => 'iPhone 5'
'data' => 4
3 =>
array
'name' => 'Lumia 1020'
'data' => 3
4 =>
array
'name' => 'Lumia 1020'
'data' => 3
5 =>
array
'name' => 'Lumia 1020'
'data' => 8
etc.
我想要实现的是一个新的数组,其分组如下:
array
0 =>
array
'name' => 'iPhone 5'
'data' =>
array
0 => 7
1 => 5
2 => 4
1 =>
array
'name' => 'Lumia 1020'
'data' =>
array
0 => 3
1 => 3
2 => 8
2 =>
array
'name' => 'Samsung Galaxy S4'
'data' =>
array
0 => 8
1 => 5
2 => 6
任何指针都非常感谢!
答案 0 :(得分:2)
这样的事情可能有用。
$output = array();
//loop over the input array
foreach($input as $phone){
//get the name for our key
$name = $phone['name'];
$data = $phone['data'];
//if the name doesn't exist in our output...
if(!isset($output[$name])){
//add it
$output[$name] = array('name'=>$name, 'data'=>array($data));
} else {
//else, add data
$output[$name]['data'][] = $data;
}
}
//get the values from the array to re-index numerically
$newData = array_values($output);
//display
echo "<pre>".print_r($newData, true)."</pre>";