2016-09-29 59 views
1

我有5個checkboxs,我的數組有3個元素;如果數組元素相同的複選框值,則該複選框選中,但它應該只打印一次複選框數組循環問題

<?php 
$selvals = array("Manhattan", "Bronx", "Brooklyn"); 
    $myArray = explode(',', $selvals); 
    foreach($myArray as $i) 
    { 

    ?> 

    <label class="checkbox-inline"><input type="checkbox" <?php if($i == "Manhattan"){ echo 'checked="checked"';}?> name="manhattan" value="Manhattan" >Manhattan</label> 
    <label class="checkbox-inline"><input type="checkbox" <?php if($i == "Bronx"){ echo 'checked="checked"';}?> name="bronx" value="Bronx" >Bronx</label> 
    <label class="checkbox-inline"><input type="checkbox" <?php if($i == "Brooklyn"){ echo 'checked="checked"';}?> name="brooklyn" value="Brooklyn" >Brooklyn</label> 
    <label class="checkbox-inline"><input type="checkbox" <?php if($i == "Queens"){ echo 'checked="checked"';}?> name="queen" value="Queens" >Queens</label> 
    <label class="checkbox-inline"><input type="checkbox" <?php if($i == "Staten Island"){ echo 'checked="checked"';}?> name="staten" value="Staten Island" >Staten Island</label> 

    <?php 
    } 
    ?> 

回答

1

我覺得你的代碼應該是這樣的: - :)

<?php 
$selvals = array("Manhattan", "Bronx", "Brooklyn"); 
?> 
<label class="checkbox-inline"><input type="checkbox" <?php if(in_array("Manhattan",$selvals)){ echo 'checked="checked"';}?> name="manhattan" value="Manhattan" >Manhattan</label> 
<label class="checkbox-inline"><input type="checkbox" <?php if(in_array("Bronx",$selvals)){ echo 'checked="checked"';}?> name="bronx" value="Bronx" >Bronx</label> 
<label class="checkbox-inline"><input type="checkbox" <?php if(in_array("Brooklyn",$selvals)){ echo 'checked="checked"';}?> name="brooklyn" value="Brooklyn" >Brooklyn</label> 
<label class="checkbox-inline"><input type="checkbox" <?php if(in_array("Queens",$selvals)){ echo 'checked="checked"';}?> name="queen" value="Queens" >Queens</label> 
<label class="checkbox-inline"><input type="checkbox" <?php if(in_array("Staten Island",$selvals)){ echo 'checked="checked"';}?> name="staten" value="Staten Island" >Staten Island</label> 
0

explode函數的第二個參數應該是一個字符串。但是您不需要它,只需刪除爆炸聲明並將$myArray替換爲循環中的$selvals即可。

$selvals = array("Manhattan", "Bronx", "Brooklyn"); 
foreach ($selvals as $i) 
     ^^^^^^^