好的,所以我有一个for循环,显示书籍及其相关的销售信息...我有正确显示..我有一个循环,通过一个数组并显示信息。我想做的是让for循环只显示有关精装书或软皮书的信息,如果它们的值仅为0; 我已经尝试在echo语句中添加一个for循环,但它给了我一个错误.. 我有一种感觉,它与我的结合价值的方式有关..这里是我的for循环
function displayData($array){
// create a form
echo ' <form action="order_summary.php" method="post">';
// for loop to go through data
for($row = 0; $row < sizeof($array);$row++){
echo '<div class="book-details"><img src="images/' .
$array[$row]['isbn'].'.jpg" alt="'.$array[$row]['title'] .'" >'.
'<br/>'.$array[$row]['title'].'<br/>by '.$array[$row]['author'].
'<br/><input type="radio" name="orders['.$array[$row]['title'].
']" value="hardcover" >Hardcover: $'.$array[$row]['hardcover'].
'<br/><input type="radio" name="orders['.$array[$row]['title'].
']" value="softcover" >Softcover: $'.$array[$row]['softcover'].
'<br/><input type="radio" name="orders['.$array[$row]['title'].
']" value="e-book" >E-Book: $'.$array[$row]['e-book']."</div>";
};
echo '<div class = "cart"><input type="submit" value="Add Selected Items to Cart"></div>';
echo '</form>';
}// end of function
我想包含这样的内容
if (!$array[$row]['hc-quantity']== 0) {
// display hardcover price
}
else {
go to the next book and repeat check for softcover
};
你可以帮我解决这个问题......
答案 0 :(得分:1)
您可以使用foreach
语法改进代码。您建议的if
条件接近,但!
运算符实际上是在数组元素上,而不是在等式上。
我还建议关闭PHP标记以生成HTML,而不是使用echo
。然后使用<?= ... ?>
在HTML中注入PHP值。对于if
条件,您可以插入一些<?php ... ?>
块。
以下是改编的代码(仅for
循环):
<?php
// ... other code ...
foreach ($array as $item){
?>
<div class="book-details">
<img src="images/<?=$item['isbn']?>.jpg" alt="<?=$item['title']?>"><br>
<?=$item['title']?><br>
by <?=$item['author']?><br>
<?php
if ($item['hc-quantity'] > 0) {
?>
<input type="radio" name="orders[<?=$item['title']?>]" value="hardcover">
Hardcover: $<?=$item['hardcover']?><br>
<?php
}
if ($item['sc-quantity'] > 0) {
?>
<input type="radio" name="orders[<?=$item['title']?>]" value="softcover">
Softcover: $<?=$item['softcover']?><br>
<?php
}
?>
<input type="radio" name="orders[<?=$item['title']?>]" value="e-book">
E-Book: $<?=$item['e-book']?>
</div>
<?php
}
// ... more code
//
?>
答案 1 :(得分:0)