将会话['B']中的数组存储在会话['A']

时间:2017-06-21 15:01:42

标签: php arrays session

说我在MySQL中有下表

No. Item   price   code
1   apple  12.00   001
2   pear   10.00   002
3   orange  9.00   003
4   grape  15.00   004

我使用PHP some_page.php启动会话并运行查询SQL,然后存储为$_SESSION['A'],其中包含以下数组:

1   apple  12.00   001
2   pear   10.00   002

(此$_SESSION['A']是临时的,每次对mySQL进行新查询时都会取消设置

现在,在$_SESSION['A']未设置之前,是否可以从$SESSION['A']中选择要存储到名为some_page.php的同一$SESSION['B']上的另一个会话的数组?使用数组:

2   pear   10.00   002 

$_SESSION['B']持续时间更长)

我的逻辑是,我尝试不再运行SQL只是为了获得已经从$_SESSION['A']获得的数组。

2 个答案:

答案 0 :(得分:0)

我可能会误解这个问题,但

$ _ SESSION只是一个关联数组: http://php.net/manual/en/reserved.variables.session.php

所以你可以$_SESSION['B'] = $_SESSION['A']将数组从'A'复制到'B'。然后随意取消'A'。

编辑: 如果您只想要部分$ _SESSION ['A']数组,那么您可以通过像$_SESSION['A'][0]之类的索引访问它。根据数组的格式,您可能需要解析它才能获得所需的元素。

答案 1 :(得分:0)

如果要将B只保存到B中,可以复制整个数组,然后取消设置所需的索引。 或者您可以在A上使用foreach,检查仅匹配您的内容的条件,然后将内容放入B. 或者直接将内容保存到B而不通过A. 或者只保存到A中,然后将A复制到B。

_SESSION是一个关联数组,您可以根据需要对其进行操作。 要取消设置数组的元素,您可以使用unset($array[$index]) $index可以是INTSTRING,它取决于您。