Foreach中的两个数组

时间:2011-05-03 12:54:57

标签: php

早上好,伙计们。

我在这里有一个问题。

我有三个选择。带来第一个产品,数量带来第二,第三带来价值。 这些是更多选择muntiplos作为阵列;

Ex:
$quantity = "1,2,3";
$value = "20.00,30.00,20.00";

Foreach必须这样做。

    qty  value
$S ="1 * 20.00";
$S ="2 * 30.00";
$S ="1 * 20.00";

我发送的页面有两个进行计算。 更多的是不要用数据值和数量来做两次预测。

任何人都知道如何总结这个Vazer?

我将非常感激。

EX:
  <select class="product" name=product[]" id="product[]">
             <option value="1"> Plan 1 </ option>
             <option value="2"> Plan 2 </ option>
  </ select>

  <select class="quantity" name=quantity[]" id="quantity[]">
             <option value="1"> 1 </ option>
             <option value="2"> 2 </ option>
  </ select>

  <select class="value" name=value[]" id="value[]">
             <option value="1"> 20:00 </ option>
             <option value="2"> 30.00 </ option>
  </ select>

Post
$quantity = $_POST["quantity"];
$value    = $_POST["value"];

$quantity = explode(',', $quantity_e);
$value    = explode(',', $value_e);

foreach ($quantity  as $q && $value as $v) { // ???

$v = $v * $q; // ????

}

1 个答案:

答案 0 :(得分:1)

嗯,首先,您不会从您的选择中获得任何相关信息。您的3个输入数组将如下所示

Array
(
    [name] => (
        [0] => 1
        [1] => 2
        [2] => 1
    )

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

    [value] => (
        [0] => 2
        [1] => 2
        [2] => 2
    )
)

你没有传递任何标记,只有1和2,因为所有选项的value属性都只设置为1和2。

您可以同时删除value属性,它会传递选项中的文字,或者您可以将value设置为您想要传递的实际值。

一旦您将数据格式化为最初指定的格式,这样的事情就可以实现我认为的目标。

// make arrays from your comma delimited strings
$quantity_array = explod(',',$quantity);
$value_array    = explode(',',$quanity);

// variable to store the total
$total = 0;

//iterate over them, summing them up
foreach ( $quantity_array as $i => $qty )  // $i is the index
{
    $item_total = $qty * $value_array[$i];  // the index should be the same for the values
    $total += $item_total;
}