用session传值,二维数组怎么只剩一维了?

        <?php 
  foreach ($res as  $value) {
  $sql2="select * from dadao_cart where userid='$userid' and goodid='$goodid'";
  $res2=mysqli_fetch_all(mysqli_query($conn,$sql2));
        $_SESSION['cart']=$res2;
  var_dump($_SESSION['cart']);
        }
  ?>

        <?php 
        require 'conn/conn.php';
        var_dump($_SESSION['cart']);
        ?>

第一页我把数据库的查询结果保存在session里,应该是一个二维的数组:array(1) { [0]=> array(4) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "6" } } array(1) { [0]=> array(4) { [0]=> string(2) "27" [1]=> string(1) "2" [2]=> string(1) "1" [3]=> string(1) "4" } } array(1) { [0]=> array(4) { [0]=> string(2) "31" [1]=> string(1) "3" [2]=> string(1) "1" [3]=> string(1) "1" } } array(1) { [0]=> array(4) { [0]=> string(2) "30" [1]=> string(1) "4" [2]=> string(1) "1" [3]=> string(1) "7" } },但到了第二页却只显示最后一项

 <?php 

foreach ($res as $value) {
$sql2="select * from dadao_cart where userid='$userid' and goodid='$goodid'";
$res2=mysqli_fetch_all(mysqli_query($conn,$sql2));
$cart=json_encode($res2);
$cart11[] =$cart;
}
$_SESSION['cart'] = $cart11[];
?>
<?php
require 'conn/conn.php';
var_dump($_SESSION['cart']);
?>

你每次都将新的对象赋值给同一个会覆盖

你这样每次查询出来的都是一维数组,所以循环保存到session里面的都只是最后一次循环查询到的数据。
先把每次循环的查询结果保存到一个新的数组,循环结束后再把新数组保存到session

我把代码改了一下
<?php
foreach ($res as $value) {
$goodid=$value[0];
$sql2="select * from dadao_cart where userid='$userid' and goodid='$goodid'";
$res2=mysqli_fetch_all(mysqli_query($conn,$sql2));
$cart=[];
array_push($cart, $res2);
?>

        但还是不行。。。

传值;session["temp" ] = "(这里填你要传值给session的参数)";
赋值:string temp = session["temp" ].toString();

不用php,不过应该是值被覆盖了