首页 > 解决方案 > 仅获取与数组中的值不同的值

问题描述

我正在尝试运行一个 for 循环来检查数组中的所有值,然后运行 ​​if 语句,如果任何值与数组中的值匹配,它就会跳过该值。我有这个:

总座位数

 10
$seats_arr = [1, 4, 7]
$result = mysqli_query($con, "SELECT * FROM trains WHERE id='$id'");

while ($row = mysqli_fetch_array($result)) {
    $total_seats = $row['seats'];
    $booked_seats = $row['booked_seats'];
    $viti = $row['viti'];
         
    $seats_arr = preg_split("/\,/", $viti);
    print_r($seats_arr);
                    
    ?>
    
    <select class="custom-select col-12" name="selected_seat">
        <option selected="" disabled>Choose your seat</option>
        <?php
         $N = $total_seats;
         foreach ($seats_arr as $seat) {            
         for($i=1; $i <= $N; $i++) {
                     
            if($i == $seat){
                continue;
             }
                      
         ?>
         <option value="<?php echo $i; ?>"><?php echo "Seat ", $i; ?></option>
          <?php
               } 
             }
           }
         ?>
     </select>

期望的输出

2, 3, 5, 6, 8, 9, 10

标签: phpfor-loop

解决方案


既然你正在处理数字......这应该工作得很好

$range = range(1,$total_seats);
$seats_arr = [1, 4, 7];

$newunselected = array_diff($range,$seats_arr); //Your new array you can foreach this

print_r($newunselected); 

推荐阅读