Я пытаюсь найти лучший способ сопоставить набор массивов в один массив.
$name = ['Toyota','Toyota','Lexus'];
$invoiceCount= [1,1,2];
$netSales = [28,25,520];
$gp = [6,6,103];
$gpp = [0.2143,0.24,0.1981]
$returnRate = [0,0,0];
$returnRateP = [0,0,0];
$lastOrder = ['2020-06-16','2020-06-16','2020-06-12'];
Я хочу сопоставить один массив на основе массива $ name.
Это то, что у меня есть
$results = array();
for($i = 0; $i < count($name); $i++) {
$results[$oem[$i]] = array(
"IC" => ($results[$name[$i]]['IC'] ?: 0) + $invoiceCount[$i],
"NS" => ($results[$name[$i]]['NS'] ?: 0) + $netSales[$i],
"GP" => ($results[$name[$i]]['GP'] ?: 0) + $gp[$i],
"GPP" => ($results[$name[$i]]['GPP'] ?: 0) + $gpp[$i],
"ReR" => ($results[$name[$i]]['ReR'] ?: 0) + $returnRate[$i],
"RR" => ($results[$name[$i]]['RR'] ?: 0) + $returnRateP[$i],
"OM" => ($results[$name[$i]] = $oem[$i]),
"LO" => ($results[ $oem[$i] ]['LO'] ?:0 ) + $lastOrder[$i],
);
//var_dump($results); die();
}
Кажется, все отображается нормально, однако $ lastOrder - это тот, с которым мне, кажется, трудно. $ lastOrder по какой-то причине отображает заказы и добавляет их. Когда я var_dump $ results это то, что я получаю для "LO"
["Toyota"]=>["LO"]=>int(4040)
["Lexus"]=>["LO"]=>int(2020)
Результаты, которые я хочу, это
["Toyota"]=>["LO"]=>['2020-06-16','2020-06-16']
["Lexus"]=>["LO"]=>['2020-06-12']
любые идеи?