[英]How can I group an array by distinct 'name' and put associated values into a sub-array for each name?
我已經做了很多搜索,似乎無法找到一個有助於我的案例的例子。
我有一個像這樣的數組:
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
任何指針都非常感謝!
這樣的事可能有用。
$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>";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.