如何在 PHP 中的另一个 foreach 中传递爆炸值

How to pass the explode value in another foreach in PHP

我正在从数据库中获取所有数据,我的列数据之一是 1|3|6|8

我正在使用 explode 来获取输出。

现在,我有一个从数据库中获取的复选框列表,我必须传递复选框列表中的爆炸值来选中该复选框。

<?php 
      $exp=explode('|', $Info['recog']); //getting from the database
      print_r($exp) // output is Array ( [0] => 120 [1] => 121 [2] => 130 [3] => 156 ) 

      foreach ($exp as $key => $e) {
      print_r($e);
        }
    
     // displaying the list
      foreach ($checkLists as $key => $check) {
        ?>
     <li>
      <label class="regBox">
         <div class="mb-3"><img src="<?php echo $check['img'];?>" alt=""></div>
         <input type="checkbox" name="recog[]" value="<?php echo $check['cid'];?>">
         <p><?php echo $check['title'];?></p>
         <div class="checkmark"></div>
      </label>
   </li>
   <?php }?>

我知道我必须使用 foreach<?php echo ($check['cid']==$e['value'] ? 'checked' : '');?>

好的 - 我认为因为展开的字符串会产生一个简单的数组,所以内部 foreach 循环只需要检查当前数组成员是否等于当前记录的 cid 字段。 .

<?php 
    $exp=explode( '|', $Info['recog'] );
    foreach( $checkLists as $key => $check ) {
        
        $checked='';
        
        foreach($exp as $i){// simple integer
            if( (int)$i == (int)$check['cid'] ){
                $checked='checked';
                break;
            }
        }
        # Alternative
        # $checked=in_array($check['cid'],$exp) ? 'checked' : '';
?>
    <li>
        <label class="regBox">
            <div class="mb-3">
                <img src="<?php echo $check['img'];?>" alt="" />
            </div>
            
            <input type="checkbox" name="recog[]" value="<?php echo $check['cid'];?>" <?php echo $checked;?>/>
            
            <p><?php echo $check['title'];?></p>
            <div class="checkmark"></div>
        </label>
   </li>
<?php
    }//close outer foreach
?>