如何通过动态生成密钥在 php 中的会话数组中添加多个值

how to add multiple values in array of session in php by dynamic generation of key

我想在 session 数组

中存储多个项目的 slug

这是我的 ajax 脚本,我通过它向会话发布 slug 名称:

 <script>
$('a.add_to_cart_button').click(function(){
    var slug = $(this).attr('id');
     $.ajax({
        type: "POST",
        url: "assets/includes/session.php",
        data:{ prod_slug: slug }, 
        success: function(data){
            alert(data);
        }
     });
});
</script>

这是我的代码 session.php:

<?php
session_start();
 $slug = $_POST['prod_slug'];

 $arr = array('slug'=> $slug);
$_SESSION = array_merge($_SESSION,$arr);
print_r($_SESSION);
?>

但是由于关联数组应该有唯一键所以它会覆盖值:

$arr = array('slug'=> $slug);

键应该有增量来存储多个值,例如:

$arr = array('slug'=> $slug);

$arr = array('slug1'=> $slug);

$arr = array('slug2'=> $slug);

我该如何完成。

获取数组中会话中的内容,然后将其附加回会话

<?php
session_start();
if(empty($_SESSION['slug'])){
    $_SESSION['slug'] = array();
}
array_push($_SESSION['slug'], $_POST['prod_slug']);
print_r($_SESSION);
?>

假设您将 $_SESSION['slug'] 初始化为一个数组。

供社区使用:

<?php

session_start();

 $slug = $_POST['prod_slug'];
$_SESSION['slugs'][] = $slug;
$_SESSION = array_merge($_SESSION);
print_r($_SESSION);
return false;

?>