【问题标题】:Save session data in a PHP array将会话数据保存在 PHP 数组中
【发布时间】:2014-05-29 21:29:05
【问题描述】:

在一个 php 页面中,我正在获取值,我可以按如下方式保存它:

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

并按如下方式检索它:

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

我可以稍后将值检索为 8。

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

如果尝试保存更多 ID:

  • 第 4 个 ID 应替换为数组中的第一个值
  • 第 5 个 ID 应替换为数组中的第二个值
  • 第 6 个 ID 应替换为数组中的第三个值,然后像这样......

【问题讨论】:

  • 只是...将它们放在一个数组中并将其存储在会话中...?有什么问题?
  • 我之前没有使用 php 会话和数组来完成这种任务,所以我有点困惑。
  • 然后更详细地解释你到底对什么感到困惑。
  • 如果我需要添加三个以上的值,我们可以用新值替换之前的值

标签: php mysql arrays session


【解决方案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

【讨论】:

    【解决方案2】:

    方法一: (如果你有像 3 这样的少量变量,只需将值保存到会话变量中。)

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

    方法二: (使用数组)

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

    当你想替换时:

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

    【讨论】:

      【解决方案3】:
      $arrSession = array();
      $arrSession[] = 'Value1';
      $arrSession[] = 'Value2';
      $arrSession[] = 'Value3';
      
      
      $_SESSION['search'] = $arrSession;
      
      //Retrive it as $_SESSION['search'] whereever necessary
      

      【讨论】:

      • 如果我需要替换数组中的值我该怎么办?
      猜你喜欢
      • 2013-05-09
      • 2010-09-14
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 2011-03-15
      相关资源
      最近更新 更多