Я не совсем понимаю, что происходит.скопируйте следующий код и запустите его, вы должны увидеть то, что я вижу.
<code>$stores = array(
(object)[
"store_id" => 1,
],
(object)[
"store_id" => 2,
],
(object)[
"store_id" => 3,
]
);
$currentYear = date('Y');
$monthes = array();
for($i = 1; $i <= 4; $i++){
$temp = new stdClass();
$temp->month = $i;
$temp->sales = 0;
array_push($monthes, $temp);
}
foreach($stores as $store){
$store->sales = array(
"currentYear" => (object)[
"year" => $currentYear,
"monthes" => $monthes,
],
);
}
foreach($stores as $store){
foreach($store->sales as $year){
foreach($year->monthes as $month){
$month->sales += 1;
}
}
}
print_r("<pre>");
print_r($stores);
print_r("
");
результат, который он производит, выглядит следующим образом:
Array
(
[0] => stdClass Object
(
[store_id] => 1
[sales] => Array
(
[currentYear] => stdClass Object
(
[year] => 2018
[monthes] => Array
(
[0] => stdClass Object
(
[month] => 1
[sales] => 3
)
[1] => stdClass Object
(
[month] => 2
[sales] => 3
)
, но я ожидаю, что продажи будут 1. вместо 3.потому что, похоже, он будет посещать каждый месяц всего 1 раз, а начальное значение продаж равно 0. поэтому 0 + = 1 должно быть просто 1. Похоже, что оно зацикливалось на себе 3 раза.
Я не могу обернутья думаю о том, что я здесь сделал неправильно.