亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP 中比較兩個多維數組以求和數據

在 PHP 中比較兩個多維數組以求和數據

PHP
千巷貓影 2023-07-01 14:12:12
我有兩個數組:數組A:$rates = array(    'apple' = array(        'red'    => 1.19,        'green'  => 0.99,        'yellow' => 0.89    ));數組B:$cart = array(    'apple' = array(        '0'  => red,        '1'  => green    ));數組 B 是購物車,我需要從數組 A 獲取費率。所以:蘋果 > 紅色 >1.19蘋果 > 綠色 >0.99總共應該是2.18。這是我嘗試過的:foreach($cart as $key => $arr){    if(!in_array($key[$arr], $rates)){        $total += $rates[$key];    }}但這不起作用。請問我缺少什么?非常感謝您的幫助。
查看完整描述

2 回答

?
慕桂英4014372

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

3v4l.org 上的演示


查看完整回答
反對 回復 2023-07-01
?
偶然的你

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;

?>


查看完整回答
反對 回復 2023-07-01
  • 2 回答
  • 0 關注
  • 134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號