如何修复 PHP 中的“为 foreach() 提供的参数无效”

问题描述

在将数组数据显示到 HTML 表中时,我收到为 foreach() 提供的无效参数。请帮我解决这个问题。

我收到以下错误, 警告:在第 56 行的 /Applications/XAMPP/xamppfiles/htdocs/mf/view_cart.PHP 中为 foreach() 提供的参数无效

<?PHP
   $bill= 0;
     $sno = 1;
   
   foreach($_SESSION as $products){
          //print_r($products);
   
   print "<tr>";    
   echo "<form action='edit_cart.PHP' method='post'>"; 
   if (!$products) $products = array();   
     foreach($products as $key =>$value){
var_dump($products);
   if($key == 0){   
   echo "<input type='hidden' name='name$key' class='form-control' value='".$value."'>";       
   echo "<td>".$value."</td>";   
      
   } else if($key == 1){  
   $p = $value;   
   echo "<input type='hidden' name='name$key' class='form-control' value='".$value."'>";        
    echo "<td>".$value."</td>";     
      
   }else if($key == 2){  
   $q = $value;   
   print "<td><input type='number' name='name$key' class='form-control col-xl-4 text-center' min='1' value='".$value."'></td>";     
   $bill = ($p * $q);
   echo "<td>".($bill)."</td>";
               echo "<td><input type='submit' name='event' value='Update' class='btn btn-sm btn-warning'></td>";
   echo "<td><input type='submit' name='event' value='Delete' class='btn btn-sm btn-danger'></td>";   
   }
   
        
     }
   
   echo "</form>"; 
   print "</tr>"; 
   }
    
   print "</table>";
   print "</div>";         
   ?>
var_dump($products); Output.
    
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(3) { [0]=> string(14) "All in One Set" [1]=> string(3) "140" [2]=> string(1) "4" }
array(3) { [0]=> string(14) "All in One Set" [1]=> string(3) "140" [2]=> string(1) "4" }
array(3) { [0]=> string(14) "All in One Set" [1]=> string(3) "140" [2]=> string(1) "4" }

Screenshot of the Image

解决方法

看来您将 $_SESSION 对象用于不仅仅是产品 - 也许那里有一些用户信息。我建议将您的所有产品都移到 $_SESSION['products']