PHP中用于迭代数组的For循环在第一个循环中起作用,但在第二个循环中不起作用


My For loop in PHP used to iterate an array works on the first loop, but not the second

if (isset($_GET['q'])){$q = $_GET['q'];

              //variables
              $sql = "SELECT * FROM products WHERE product LIKE '%$q%' OR search LIKE '%$q%'";
              $result = $conn->query($sql);

              //check database
              if($result->num_rows > 0){        
                while ($row = $result->fetch_array()){
                  $product = $row['product'];
                  $productImage = $row['product_image'];
                  $price = $row['price'];
                  $seller = $row['seller_name'];
                  $sellerImage = $row['seller_image'];
                  $desc = $row['description'];
                  $search = $row['search'];
                  $console = $row['console'];
                  $array = array($product, $price, $productImage);
                  $arrayDesc = array($desc, $sellerImage);

                  if (preg_match('/Game/', $seller)){                    
                    for ($num = 0; $num < 3; $num++) {
                      echo '<div class="tile col-md-4 col-sm-3">';
                      if($num == 0){
                        echo '<div class="tileTitleBox"><h4>' . $array[$num] . '</h4></div>';
                      }
                      if($num = 1){
                        echo '<p class="price">' . $array[$num] . '</p>';
                      }
                      if($num = 2){
                        echo '<img class="tilePic" src="' . $array[$num] . '"/>';
                      }
                      // if($num = 3){
                      //   echo '<div class = "desc"><p>' . $array[$num] . '</p></div>';
                      // }
                      echo '</div>';
                    }//For Iteration Loop - TILE
                    for($count = 0; $count < 2; $count++){
                      echo '<div class="tile-description col-md-4 col-sm-3 hidden">';
                      if($count == 0){
                        echo '<div class="desc"><p>' . $arrayDesc[$count] . '</p></div>';
                      }
                      if($count == 1){
                        echo '<img class="sellerImg" src="' . $arrayDesc[$count] . '"/>';
                      }
                      echo '</div>';
                    }//end for loop - TILE-DESCRIPTION
如你所见,我有一个for循环创建"tile",第二个for循环创建"tile-description"。第一个可以很好地创建一个类为"tile"的div,其中剩余的内容被加载到div中。但是在第二个for循环中,"desc"dev和"sellerImg"div是分开的。循环需要多次遍历数组。

所示波形:你可以看到"Tile"div包含"tileTitleBox", "price"answers"tilePic"。但隐藏的"瓦片描述"分为两部分。

@sam-dufel正确地指出你重写了迭代器

if($num = 1){

但实际上你不应该在这里使用任何循环:

  echo '<div class="tile col-md-4 col-sm-3">';
  echo '<div class="tileTitleBox"><h4>' . $array[0] . '</h4></div>';
  echo '<p class="price">' . $array[1] . '</p>';
  echo '<img class="tilePic" src="' . $array[2] . '"/>';
  echo '</div>';
  echo '<div class="tile-description col-md-4 col-sm-3 hidden">';   
  echo '<div class="desc"><p>' . $arrayDesc[0] . '</p></div>';
  echo '<img class="sellerImg" src="' . $arrayDesc[1] . '"/>';
  echo '</div>';