如何解决如何检查是否设置了变量,并且该变量与来自循环的另一个变量具有相同的值?
问题是,我想检查用户的超级变量是否与另一个包含值数组的变量上的值相同。
问题在于数组位于2维上,因此我需要循环检查数组是否与从URL获得的变量匹配。
我不想使用某个功能来实现它,而是实现它的最佳方法。
这是代码:
<?php
$detalles = [
array("nombre"=>"Manzana","precio"=>45.95,"color"=>"Rojo"),array("nombre"=>"Pera","precio"=>40.36,"color"=>"Verde"),array("nombre"=>"Uva","precio"=>95.21,"color"=>"Purpura"),array("nombre"=>"Naranja","precio"=>15.60,"color"=>"Naranja"),array("nombre"=>"Mango","precio"=>10.80,"color"=>"Amarillo")
];
?>
<!DOCTYPE html>
<html>
<head>
<title>Results of $_GET variable</title>
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div style="margin-top: 20px" class="container">
<table class="table table-striped">
<tr>
<td colspan="2">Product details</td>
</tr>
<?php foreach($detalles as $producto):
if(!isset($_GET['producto']) || $producto["nombre"] != $_GET['producto']){
header('Location: index.php');
}
if($producto["nombre"] == $_GET['producto']): ?>
<tr>
<td>Nombre:</td>
<td>{ <?php echo $producto["nombre"]; ?> }</td>
</tr>
<tr>
<td>Precio:</td>
<td>{ <?php echo $producto["precio"]; ?> }</td>
</tr>
<tr>
<td>Color:</td>
<td>{ <?php echo $producto["color"]; ?> }</td>
</tr>
<?php endif;
break;
endforeach; ?>
</table>
</div>
</body>
</html>
这是details.php文件,此文件之前有一个文件,该文件具有带有get方法和操作的表单,因此一切正常,我的逻辑是不正确的。
先谢谢您。 祝福
解决方法
- 您是否在每个循环中检查是否设置了
$_GET['producto']
。您必须在循环之前检查一次。 - 不要在循环中打印详细信息。首先,您必须找到产品,然后然后显示详细信息。
<?php
if( !isset($_GET['producto']) ) header("Location: index.php");
$found = null;
foreach($detalles as $producto){
if( $producto["nombre"] == $_GET['producto']){
$found = $producto;
break;
}
}
?>
<tr>
<td>Nombre:</td>
<td>{ <?php echo $found["nombre"]; ?> }</td>
</tr>
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。