我有一个阵列,在几个国家/地区拥有多年的总销售额。下面是阵列的小样本。一些国家以几种不同的货币进行销售,但现在转换为相同的货币。现在我需要将这些总销售额加在一起,其中Year,Month和Country值相同但仍然保持相似的结构。
如果[“年”]的值和& [“月”]& [“Country”]匹配,然后我需要对[“Total_Sales”]的值求和并保持相同的数组结构。
我不知道从哪里开始。我确信有一个foreach循环或2个参与。
array(6) {
[0]=>
array(4) {
["Year"]=>
string(4) "2014"
["Month"]=>
string(2) "12"
["Country"]=>
string(2) "NZ"
["Total_Sales"]=>
float(8.25)
}
[1]=>
array(4) {
["Year"]=>
string(4) "2014"
["Month"]=>
string(2) "12"
["Country"]=>
string(2) "NZ"
["Total_Sales"]=>
string(6) "5.50"
}
[2]=>
array(4) {
["Year"]=>
string(4) "2014"
["Month"]=>
string(2) "12"
["Country"]=>
string(2) "US"
["Total_Sales"]=>
string(9) "10.05"
}
[3]=>
array(4) {
["Year"]=>
string(4) "2015"
["Month"]=>
string(1) "1"
["Country"]=>
string(2) "NZ"
["Total_Sales"]=>
float(9.50)
}
[4]=>
array(4) {
["Year"]=>
string(4) "2015"
["Month"]=>
string(1) "1"
["Country"]=>
string(2) "NZ"
["Total_Sales"]=>
string(6) "15.00"
[5]=>
array(4) {
["Year"]=>
string(4) "2015"
["Month"]=>
string(2) "1"
["Country"]=>
string(2) "US"
["Total_Sales"]=>
string(9) "6.00"
}
array(4) {
[0]=>
array(4) {
["Year"]=>
string(4) "2014"
["Month"]=>
string(2) "12"
["Country"]=>
string(2) "NZ"
["Total_Sales"]=>
float(13.75)
}
[1]=>
array(4) {
["Year"]=>
string(4) "2014"
["Month"]=>
string(2) "12"
["Country"]=>
string(2) "US"
["Total_Sales"]=>
string(9) "10.05"
}
[2]=>
array(4) {
["Year"]=>
string(4) "2015"
["Month"]=>
string(1) "1"
["Country"]=>
string(2) "NZ"
["Total_Sales"]=>
float(24.50)
}
[3]=>
array(4) {
["Year"]=>
string(4) "2015"
["Month"]=>
string(2) "1"
["Country"]=>
string(2) "US"
["Total_Sales"]=>
string(9) "6.00"
}
答案 0 :(得分:1)
做类似
的事情foreach($currentArray as $value){
$newArraykey = $value["country"]."-".$value["Year"]."-".$value["month"]
if(isset($newArray[$newArraykey])){
$newArray[$newArraykey]["Total_Sales"] = $newArray[$newArraykey]["Total_Sales"] + $value["Total_Sales"];
}else{
$newArray[$newArraykey] = $value;
}
}
$ newArray会像
array(4) {
[NZ-2014-12]=>
array(4) {
["Year"]=>
string(4) "2014"
["Month"]=>
string(2) "12"
["Country"]=>
string(2) "NZ"
["Total_Sales"]=>
float(13.75)
}
[US-2014-12]=>
array(4) {
["Year"]=>
string(4) "2014"
["Month"]=>
string(2) "12"
["Country"]=>
string(2) "US"
["Total_Sales"]=>
string(9) "10.05"
}
[NZ-2015-1]=>
array(4) {
["Year"]=>
string(4) "2015"
["Month"]=>
string(1) "1"
["Country"]=>
string(2) "NZ"
["Total_Sales"]=>
float(24.50)
}
[US-2015-1]=>
array(4) {
["Year"]=>
string(4) "2015"
["Month"]=>
string(2) "1"
["Country"]=>
string(2) "US"
["Total_Sales"]=>
string(9) "6.00"
}
如果您不想使用国家/地区年月份等密钥,则会使用array_values($newArray)
,这将返回您想要的完全相同的数组。