如何访问和打印来自多个关联数组的值?
how to access and print values from multiple associative arrays?
我有 2 个关联数组,“drinks”和“snacks”。
每个都以 dropdown/select 列表的形式显示,一旦做出选择,用户就可以单击提交按钮。这段代码似乎工作正常。 (显示在下方)
// create an an associative array for drinks & snacks
$drinks=array("Water"=>2, "Tea"=>3, "Coffee"=>4);
$snacks=array("Nuts"=>4, "Chips"=>3, "Crackers"=>2);
// initialise variables
$drinksCost = 0;
$snacksCost = 0;
$sum = 0;
?>
<!-- create a dropdown form & submit button -->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="POST">
<h4>Drinks</h4>
<select>
<?php
foreach($drinks as $key => $value) {
echo '<option value ="'.$key. '">' .$key. '</option>';
}
?>
</select>
<h4>Snacks</h4>
<select>
<?php
foreach($snacks as $key => $value) {
echo '<option value ="'.$key. '">' .$key. '</option>';
}
?>
</select>
<br><br>
<input type='submit' name='submit' value='submit'>
</form>
我对下一步有疑问,我需要:
显示每个数组中的所选项目及其价格(所以我应该有一个饮料项目和一个小吃项目);然后
将两个价格相加并显示总和。
问题代码在下面,它只是打印出每个项目,然后添加每个数组中最后一个项目的价格。如果有任何帮助,我将不胜感激!
<?php
if(isset($_POST['submit'])){
foreach ($drinks as $key => $value){
$drinksCost = $value;
echo "<br>Drink order: ".$key .". Cost: $" .$value ."<br>";
}
foreach ($snacks as $key => $value){
$snacksCost = $value;
echo "<br>Drink order: ".$key .". Cost: $" .$value ."<br>";
}
$sum = $drinksCost + $snacksCost;
echo "<br>Total Cost is: $ " .$sum;
}
?>
<?php
$sum = 0;
if(isset($_POST['submit'])){
foreach ($drinks as $key => $value){
$drinksCost = $value;
$sum += $drinksCost;
echo "<br>Drink order: ".$key .". Cost: $" .$value ."<br>";
}
foreach ($snacks as $key => $value){
$snacksCost = $value;
$sum += $drinksCost;
echo "<br>Drink order: ".$key .". Cost: $" .$value ."<br>";
}
echo "<br>Total Cost is: $ " .$sum;
}
?>
1) 名称属性必须。除非您的输入值未 post 到目标页面
<select name="drinks">
<?php
foreach($drinks as $key => $value) {
echo '<option value ="'.$key. '">' .$key. '</option>';
}
?>
</select>
2) 不需要 foreach 只需使用 post 值作为键直接访问值。像这样 $drinks[$_POST['drinks']];
<?php
$drinks=array("Water"=>2, "Tea"=>3, "Coffee"=>4);
$snacks=array("Nuts"=>4, "Chips"=>3, "Crackers"=>2);
if(isset($_POST['submit'])){
$total =0;
if(isset($_POST['drinks']) && !empty($_POST['drinks'])){
$drinksCost = $drinks[$_POST['drinks']];
$total+= $drinksCost;
echo "<br>Drink order: ".$_POST['drinks'] .". Cost: $" .$_POST['drinks'] ."<br>";
}
if(isset($_POST['snacks']) && !empty($_POST['snacks'])){
$snacksCost = $snacks[$_POST['snacks']];
$total+= $snacksCost ;
echo "<br>snacks order: ".$_POST['snacks'] .". Cost: $" .$_POST['snacks'] ."<br>";
}
echo "<br>Total Cost is: $ " .$total;
}
?>
我有 2 个关联数组,“drinks”和“snacks”。 每个都以 dropdown/select 列表的形式显示,一旦做出选择,用户就可以单击提交按钮。这段代码似乎工作正常。 (显示在下方)
// create an an associative array for drinks & snacks
$drinks=array("Water"=>2, "Tea"=>3, "Coffee"=>4);
$snacks=array("Nuts"=>4, "Chips"=>3, "Crackers"=>2);
// initialise variables
$drinksCost = 0;
$snacksCost = 0;
$sum = 0;
?>
<!-- create a dropdown form & submit button -->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="POST">
<h4>Drinks</h4>
<select>
<?php
foreach($drinks as $key => $value) {
echo '<option value ="'.$key. '">' .$key. '</option>';
}
?>
</select>
<h4>Snacks</h4>
<select>
<?php
foreach($snacks as $key => $value) {
echo '<option value ="'.$key. '">' .$key. '</option>';
}
?>
</select>
<br><br>
<input type='submit' name='submit' value='submit'>
</form>
我对下一步有疑问,我需要:
显示每个数组中的所选项目及其价格(所以我应该有一个饮料项目和一个小吃项目);然后
将两个价格相加并显示总和。
问题代码在下面,它只是打印出每个项目,然后添加每个数组中最后一个项目的价格。如果有任何帮助,我将不胜感激!
<?php
if(isset($_POST['submit'])){
foreach ($drinks as $key => $value){
$drinksCost = $value;
echo "<br>Drink order: ".$key .". Cost: $" .$value ."<br>";
}
foreach ($snacks as $key => $value){
$snacksCost = $value;
echo "<br>Drink order: ".$key .". Cost: $" .$value ."<br>";
}
$sum = $drinksCost + $snacksCost;
echo "<br>Total Cost is: $ " .$sum;
}
?>
<?php
$sum = 0;
if(isset($_POST['submit'])){
foreach ($drinks as $key => $value){
$drinksCost = $value;
$sum += $drinksCost;
echo "<br>Drink order: ".$key .". Cost: $" .$value ."<br>";
}
foreach ($snacks as $key => $value){
$snacksCost = $value;
$sum += $drinksCost;
echo "<br>Drink order: ".$key .". Cost: $" .$value ."<br>";
}
echo "<br>Total Cost is: $ " .$sum;
}
?>
1) 名称属性必须。除非您的输入值未 post 到目标页面
<select name="drinks">
<?php
foreach($drinks as $key => $value) {
echo '<option value ="'.$key. '">' .$key. '</option>';
}
?>
</select>
2) 不需要 foreach 只需使用 post 值作为键直接访问值。像这样 $drinks[$_POST['drinks']];
<?php
$drinks=array("Water"=>2, "Tea"=>3, "Coffee"=>4);
$snacks=array("Nuts"=>4, "Chips"=>3, "Crackers"=>2);
if(isset($_POST['submit'])){
$total =0;
if(isset($_POST['drinks']) && !empty($_POST['drinks'])){
$drinksCost = $drinks[$_POST['drinks']];
$total+= $drinksCost;
echo "<br>Drink order: ".$_POST['drinks'] .". Cost: $" .$_POST['drinks'] ."<br>";
}
if(isset($_POST['snacks']) && !empty($_POST['snacks'])){
$snacksCost = $snacks[$_POST['snacks']];
$total+= $snacksCost ;
echo "<br>snacks order: ".$_POST['snacks'] .". Cost: $" .$_POST['snacks'] ."<br>";
}
echo "<br>Total Cost is: $ " .$total;
}
?>