匹配数组值与嵌套while循环内的输入字段

时间:2017-10-27 07:27:36

标签: php arrays multidimensional-array while-loop

这是一个非常愚蠢的问题。我不知道我是怎么得到这个但我得到的。 我有一个数组,我希望将数组值与来自while循环的复选框匹配。那么它是如何实现的。

                  //Array that i want to match with checkbox
                  $filter = explode(',', $getproduct->specification_filter);
                  <table class="table" style="background-color: white;">
                      <tbody>
                        <?php
                          while($fch = $allfilter->fetch_array()){
                        ?>
                        <tr>
                          <th><?=$fch[2]?></th>
                          <?php 
                          $sqlbv="SELECT * FROM product_filter where idd='$fch[4]'";
                          $resultbv=$conn->query($sqlbv);
                          while($rowbv = $resultbv->fetch_array()){
                        ?>
                          <td>
                            <label class="ckbox ckbox-danger">
                                <input type="checkbox" value="<?=$rowbv[0]?>" name="pfilter[]">
                                <span>&nbsp;&nbsp;<?=$rowbv[3]?></span>
                              </label>
                          </td>
                          <?php } ?>
                        </tr>
                        <?php } ?>
                      </tbody>
                    </table>

现在我想检查复选框字段,如果$filter数组值与复选框值匹配。那我怎么能这样做呢?

3 个答案:

答案 0 :(得分:4)

因为您的$filter是数组使用in_array

 <input type="checkbox" value="<?=$rowbv[0]?>" <?=  in_array($rowbv[0], $filter)? 'checked':''  ?> name="pfilter[]">

有关详细信息,请参阅in_array

答案 1 :(得分:0)

只需使用in_array()来检查这一点。如果是真的并标记为已检查。

<input type="checkbox" value="<?=$rowbv[0]?>" name="pfilter[]" <?php echo in_array($rowbv[0],$filter) ? 'checked="checked"' : '';?>>

希望这可以帮到你。

答案 2 :(得分:0)

在输入复选框中,您可以检查添加属性'已'。

为此,你可以写

< input type="checkbox" < ?=($rowbv[0] ? 'checked' : '')?> name="pfilter[]"/>

否则

< input type="checkbox" < ?php echo $rowbv[0] ? 'checked' : '';?> name="pfilter[]"/>