2 回答

TA貢獻1871條經驗 獲得超13個贊
你有幾個問題。首先,您應該檢查產品類型 from 是否作為ie$cart中的鍵存在$rates
if(!in_array($key[$arr], $rates)){
應該:
if (isset($rates[$key])) {
其次,一旦確定鍵確實存在于中$rates,則需要迭代中的每個值$arr以獲取其價格$rates(使用空合并運算符來避免值不在費率數組中的問題):
$total = 0;
foreach ($cart as $key => $arr) {
if (isset($rates[$key])) {
foreach ($arr as $value) {
$total += $rates[$key][$value] ?? 0;
}
}
}
echo $total;
輸出:
2.18

TA貢獻1841條經驗 獲得超3個贊
<?php
$rates = array(
'apple' => array(
'red' => 1.19,
'green' => 0.99,
'yellow' => 0.89
)
);
$cart = array(
'apple' => array(
'0' => 'red',
'1' => 'green'
)
);
$total = 0;
foreach($cart as $type => $items) {
if(array_key_exists($type, $rates)) {
foreach($items as $item) {
if(array_key_exists($item, $rates[$type])) {
$total += $rates[$type][$item];
}
}
}
}
echo $total;
?>
- 2 回答
- 0 關注
- 134 瀏覽
添加回答
舉報