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 关注
- 102 浏览
添加回答
举报