【发布时间】:2014-11-03 12:58:03
【问题描述】:
我需要什么
- 我需要对相同类型的数组进行分组。
- 如
array1 ['type']=a和array2 ['type']=a,则应将其分组到单个数组中。
数组结构
Array
(
[1] => Array
(
[type] => ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Regular
[amount] => 850
[comment] => On or Before June 28, 2014
)
[2] => Array
(
[type] => ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Friend
[amount] => 1000
[comment] => On or Before June 28, 2014
)
[3] => Array
(
[type] => ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Student
[amount] => 500
[comment] => On or Before June 28, 2014
)
[4] => Array
(
[type] => ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Regular)
[amount] => 990
[comment] => June 29 thru July 20, 2014
)
PHP 代码
foreach($data as $k=>$v){
$type[$v['type']][]=$k;
}
//loop types, creating result array
foreach($type as $k=>$v){
$tmp=array(
'type'=>$kk,
'metadata'=>array()
);
//loop all the arrays of this type
foreach($v as $w){
//store in TMP
$t=array(
'amount' => $data[$w]['amount'],
'comment' => $data[$w]['comment']
);
//store
$tmp['metadata'][]=$t;
}
$result[]=$tmp;
}
输出类型
[ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Regular] => Array
(
[0] => 1
[1] => 7
)
[ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Friend] => Array
(
[0] => 2
[1] => 5
[2] => 8
)
[ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Student] => Array
(
[0] => 3
[1] => 6
[2] => 9
)
[ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Regular)] => Array
(
[0] => 4
)
我遇到了问题
[ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Regular] => Array
(
[0] => 1
[1] => 7
)
[ECOOP Conference, Workshops and UPMARC Summer School (Mon-Fri July 28 - August 1) Regular)] => Array
(
[0] => 4
)
此数组具有相同类型但未分组。
我希望 ECOOP 会议、研讨会和 UPMARC 暑期学校(7 月 28 日周一至周五 - 8 月 1 日)定期分组。
如何解决这个问题,欢迎提出任何建议。
【问题讨论】:
-
您可以检查数组键是否存在,如果不创建数组,则您将新项目推入具有键类型的数组