从Form循环遍历POST变量

时间:2018-09-19 11:22:20

标签: php arrays

我确定这很简单,但是我所有的搜索都提出了复杂的答案,而这些答案似乎并不是很明确。

我有一个来自表单的数组,想用一个确认订单的选项将其回显给客户。

数组看起来像这样:-

 POST:- Array
(
    [choice] => Array
        (
            [0] => Array
                (
                    [quantity] => 4
                    [price] => 7.50
                    [itemname] => Margherita Pizza
                    [merchant] => 3000
                    [itemid] => 2000
                )

            [1] => Array
                (
                    [quantity] => 2
                    [price] => 3.50
                    [itemname] => Garlic Bread
                    [merchant] => 3000
                    [itemid] => 2001
                )

        )

    [submit] => Submit
)

我用来提取的代码是:-

    $_cp_i=0;
    foreach($_POST['choice'] as $mychoice) {
    $itemname[$_cp_i]=$mychoice['itemname'][$_cp_i];
    $quantity[$_cp_i]=$mychoice['quantity'][$_cp_i];
    $price[$_cp_i]=$mychoice['price'][$_cp_i];
    $_cp_i++;
    echo "<tr><td>$itemname</td><td>$quantity[$_cp_i]</td> 
<td>$price[$_cp_i]</td></tr>";
}

项目名称仅显示为Array,其他两个字段为空白。

1 个答案:

答案 0 :(得分:1)

这可能是您要寻找的东西:

$_cp_i=0;
foreach($_POST['choice'] as $mychoice) {
    $itemname[$_cp_i] = $mychoice['itemname'];
    $quantity[$_cp_i] = $mychoice['quantity'];
    $price[$_cp_i] = $mychoice['price'];
    echo "<tr><td>{$itemname[$_cp_i]}</td><td>{$quantity[$_cp_i]}</td><td>{$price[$_cp_i]}</td></tr>\n";
    $_cp_i++;
}

输出:

<tr><td>Margherita Pizza</td><td>4</td><td>7.5</td></tr>
<tr><td>Garlic Bread</td><td>2</td><td>3.5</td></tr>

如果您实际上并不需要其他地方的itemnamequantityprice数组中的数据,则可以通过以下简单循环生成此输出:

foreach($_POST['choice'] as $mychoice) {
    echo "<tr><td>{$mychoice['itemname']}</td><td>{$mychoice['quantity']}</td><td>{$mychoice['price']}</td></tr>\n";
}