Php 如何使用foreach循环来获取与条件相关的整个信息块:“引用”;大于“?”;?
是否有人知道如何使用FOREACH循环来获取与条件相关的整个信息块:“大于”用户发布的数字(在本例中$metsq=$\u POST['metersq'];)Php 如何使用foreach循环来获取与条件相关的整个信息块:“引用”;大于“?”;?,php,Php,是否有人知道如何使用FOREACH循环来获取与条件相关的整个信息块:“大于”用户发布的数字(在本例中$metsq=$\u POST['metersq'];) 例如,在我发布的代码中,如果用户写入90,它应该只输出 颜色-蓝色 msq-100 布拉格市 我试过这段代码,但显然,我没有太多经验。 提前谢谢 <?php if(isset($_POST['button'])){ $houses = array( 'house1'=>array( 'c
例如,在我发布的代码中,如果用户写入90,它应该只输出
颜色-蓝色
msq-100
布拉格市 我试过这段代码,但显然,我没有太多经验。 提前谢谢
<?php
if(isset($_POST['button'])){
$houses = array(
'house1'=>array(
'color'=>'green',
'msq'=>100,
'city'=>'Prague'
),
'house2'=>array(
'color'=>'red',
'msq'=>30,
'city'=>'Belgrade'
),
'house3'=>array(
'color'=>'blue',
'msq'=>50,
'city'=>'London'
),
'house4'=>array(
'color'=>'blue',
'msq'=>50,
'city'=>'Belgrade'
)
);
$col=$_POST['colors'];
$metsq=$_POST['metersq'];
$cit=$_POST['cities'];
foreach($houses as $house=>$data) {
foreach($data as $key=>$value) {
if($value>=$metsq) {
echo "$key - $value </br>";
}
}
} else {
echo "Go, search";
}
?>
<form action="?" method="post">
<select name="colors" >
<option>green</option></br>
<option>blue</option></br>
<option>red</option></br>
</select>
<input type="number" name="metersq" id="metersq" maxlength="3" />m2</br>
<select name="cities">
<option>Prague</option></br>
<option>Belgrade</option></br>
<option>London</option></br>
</select>
<input type="submit" value="Find" name="button"id="button" />
绿色的
蓝色的
红色的
平方米
布拉格
贝尔格莱德
伦敦
不要循环浏览房屋数据,只需循环浏览“msq”键即可:
foreach($houses as $house){
if($house['msq']>=intval($metsq)){
echo "msq - {$house['msq']} </br>";
}
}
foreach($house作为$house){
如果($house['msq']>=intval($metsq)){
回声“msq-{$house['msq']}”;
}
}
此外,您可能需要确保它们是整数,而不需要嵌套的foreach循环。您只需在数组的每个house元素中比较
msq
键,如下所示:
foreach($houses as $house=>$data){
if ($data['msq'] >= $metsq) {
// found a matching house so do something with it
var_dump($house, $data);
}
}
看起来您希望将整个
house1
输出为一组键/值对
你很接近:
foreach($houses as $house=>$data){
if( $data['msq'] >= $metsq ) {
foreach( $data as $key=>$value ) {
echo "$key - $value <br>";
}
}
}
foreach($house as$house=>$data){
如果($data['msq']>=$metsq){
foreach($key=>$value形式的数据){
回显“$key-$value
”;
}
}
}
您遇到的问题是,您实际上只在特定键满足您的条件时才输出数据。但是你做了一些比较,比如
blue>=90
,这可能会产生意想不到的结果 如何将90与第一个数组关联?这听起来像是带有=-->的if语句,只是一个注释,$key
和$value
未在示例中定义。这也会引发解析错误,因为您试图在标量值中调用数组键值。我已经为您更新了代码。@Nattan不客气。如果你的问题解决了,别忘了接受答案。:)