从表单接收数组变量后,需要帮助接收和列出数组变量的值

时间:2010-02-12 00:35:00

标签: php

我在buy.php中有这个

<form action="cart.php">
    <?php 
    echo'<input style="width:10px; margin-left:9px; " name="price[]" type="checkbox" value="' . $variety['price']. '"  />
         <input name="variety[]" type="hidden" value="' . $variety['variety']. '"  />';
    ?>
</form>

然后在cart.php中接收我喜欢

<?php
$aDoor= $_POST['price'];
$aDoor1= $_POST['variety'];
?>

$ aDoor是一个字符串,$ aDoor是数字

总结数字我可以轻松地在cart.php中编写脚本,如:

echo "Sum of vlues = ".array_sum($aDoor);

但是如何在价格$ aDoor左侧列出$ aDoor1内的字符串?并将价值之和脚本置于$ aDoor下方作为价格总额?

由于$ aDoor1是一个数组,我使用foreach循环列出每个项目但是它只会打印单词数组而不是数组变量的实际值$ aDoor1

foreach($aDoor1 as $variety) {
echo '<div>'.$variety['variety']. '</div>
}

谢谢,不知道那么多的php

2 个答案:

答案 0 :(得分:0)

即使您没有指定它,当您使用[]语法创建表单元素后,PHP会自动将其转换为具有自动生成的递增索引(0,1,2,3,等等)。您可以引用每个元素的数组索引,因为它们将匹配配对的表单字段:

foreach($aDoor1 as $index => $variety) {
  echo '<div>'.$aDoor[$index].': '.$variety. '</div>';
}

如果您的每个品种都有唯一的标识符,我建议您手动索引表单元素,以便明确:

<form action="cart.php">
    <?php 
    echo'<input style="width:10px; margin-left:9px; " name="price[' . $variety['id'] . ']" type="checkbox" value="' . $variety['price']. '"  />
         <input name="variety[' . $variety['id'] . ']" type="hidden" value="' . $variety['variety']. '"  />';
    ?>
</form>

然后循环遍历它们。

答案 1 :(得分:0)

如果您知道每个价格总有一个品种,您可以使用array_combine(),第一个参数是键(本例中的种类),第二个是价值(价格):

$price_list = array_combine($_POST['variety'], $_POST['price']);

然后,如果你想打印出来,你可以这样做:

foreach($price_list as $item => $price) {
echo "<dt>$item</dt><dd>$price</dd>"; 
}