将会话数据保存在PHP数组中

时间:2014-05-29 07:19:27

标签: php mysql arrays session

在php页面中我得到了值,我可以保存它,如下所示:

<?php
 session_start();
// store session data
$_SESSION['advert']=8;
?>

并检索如下:

<?php
   //retrieve session data
   echo "advertID=". $_SESSION['advert'];
?>

我可以稍后检索该值。

但是我需要在搜索会话中将三个产品价值ID保存在PHP数组中,之后我需要检索它们并将它们与数据库(我的SQL)连接起来,以便在这三个产品之间建立一个比较表。如何在PHP数组中保存三个值,稍后在PHP会话中检索它们?

如果尝试保存更多ID:

  • 第4个ID应替换为数组中的第一个值
  • 第五个ID应替换为数组中的第二个值
  • 第6个ID应该替换为数组中的第三个值,就像那样..

3 个答案:

答案 0 :(得分:1)

session_start();

if (!isset($_SESSION['products'])) {
    $_SESSION['products'] = array();
}

// add new product
$_SESSION['products'][] = $productId;

// trim array down to a maximum of three
$_SESSION['products'] = array_slice($_SESSION['products'], -3);

这样您可以保留最后三种产品中的FIFO list

答案 1 :(得分:1)

方法1: (如果您的变量数量很少,只需将值保存到会话变量中。)

$_SESSION['var1'] = "value1";
$_SESSION['var2'] = "value2";
$_SESSION['var3'] = "value3";

方法2: (使用数组)

$array = array();
$array['var1'] = "value1";
$array['var2'] = "value2";
$array['var3'] = "value3";

$_SESSION['array_values'] = $array;

当你想要替换时:

  1. 只需重复方法
  2. 或使用$_SESSION['array_values']['var#'] = "value#";

答案 2 :(得分:0)

$arrSession = array();
$arrSession[] = 'Value1';
$arrSession[] = 'Value2';
$arrSession[] = 'Value3';


$_SESSION['search'] = $arrSession;

//Retrive it as $_SESSION['search'] whereever necessary