基于其他值的值将两个数组值相乘

时间:2016-07-20 21:51:19

标签: php arrays

在以下数组中,我试图在itemType为Zo的情况下多次计算数量和价格。

(
    [customer] => 4
    [itemNo] => Array
        (
            [0] => 1
            [1] => 2
        )

    [itemName] => Array
        (
            [0] => Type A
            [1] => Type B
        )

    [itemType] => Array
        (
            [0] => Zo
            [1] => Ram
        )

    [quantity] => Array
        (
            [0] => 2
            [1] => 3
        )

    [price] => Array
        (
            [0] => 500
            [1] => 2000
        )
)

这是我到目前为止所尝试的但没有成功。

$lq = 0;
$total =0;

    for ($i=0;$i<count($_REQUEST['price']);$i++) {
        if(in_array("Ram", $_REQUEST['itemType'])){
                $total += $_REQUEST['price'][$i] * $_REQUEST['quantity'][$i];
        }else{
                $lq += $_REQUEST['quantity'][$i];
        }
    }

echo ($total).'<br>';
echo ($lq);

我的预期输出是:

$total = 1000;//Quantity x Price
$lq = 3//Quantity only

2 个答案:

答案 0 :(得分:1)

您没有检查要添加到总数中的同一项目的itemType。您只是检查任何项是否具有itemType。您还在寻找Ram,而不是Zo

if ($_REQUEST['itemType'][$i] == 'Zo') {
    $total += $_REQUEST['price'][$i] * $_REQUEST['quantity'][$i];
} else {
    $lq += $_REQUEST['quantity'][$i];
}

答案 1 :(得分:0)

尝试:

$data = $_REQUEST;
$key = array_search('Zo',$data['itemType']);
$total = $data['quantity'][$key] * $data['price'][$key];//Zo price*qty
$lq = array_sum($data['quantity']) - $data['quantity'][$key];//non-Zo qty

Live demo