首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分步骤设置会话

分步骤设置会话
EN

Stack Overflow用户
提问于 2019-10-10 12:11:46
回答 1查看 30关注 0票数 0

是否可以在不同的时间将多个会话元素设置为同一会话?我有两个类,每个类应该设置两个会话元素。我得到的是一个空数组。我在每个页面上都使用session_start()

此外,我还可以在单个类中成功地设置会话,但在从每个类设置时得到一个空数组。

代码语言:javascript
复制
// User class
$_SESSION['user'] = array('id' => 1);
$_SESSION['user'] = array('name' => 'Tim Miller');

// Part class
$_SESSION['user'] = array('model' => '12311');
$_SESSION['user'] = array('part' => 'AA34F');

编辑:

下面是我想要创建的数组:

代码语言:javascript
复制
Array (
  [user] => Array (
    [id] => 1
    [name] => Tim Miller
    [model] => 12311
    [part] => AA34F
    [order] => 119026
    [serial] => 12001923S3
  )
)

元素0和1应该在用户类中设置,元素2-3应该在部件类中设置,元素4-5应该在序列类中设置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-10 12:23:14

您可以设置它,但是需要使用一些不同的方法。您可以创建一个具有不同值的会话数组。

您必须在需要使用会话的每个文件的顶部写入session_start()。

代码语言:javascript
复制
session_start();

// User class
$_SESSION['user'][] = array('id' => 1);
$_SESSION['user'][] = array('name' => 'Tim Miller');

// Part class
$_SESSION['user'][] = array('model' => '12311');
$_SESSION['user'][] = array('part' => 'AA34F');

print_r( $_SESSION['user'] );

输出情况如下:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [id] => 1
        )

    [1] => Array
        (
            [name] => Tim Miller
        )

    [2] => Array
        (
            [model] => 12311
        )

    [3] => Array
        (
            [part] => AA34F
        )
)

这取决于你如何把这个数组装好。

编辑:

要获得您希望的格式输出,并在以后的不同文件中将值添加到数组中,您可以尝试如下:

代码语言:javascript
复制
// Your code here!
session_start();

// User class
$_SESSION['user'][] = array('id' => 1, 'name' => 'Tim Miller');

// Part class
$key = -1
$key = array_search( 1, array_column($_SESSION['user'], 'id') );
// Here 1 in array_search is id of user your can use $id to add data to correct user's by id.

if( $key > -1 ) {
    $_SESSION['user'][ $key ] = array_merge( $_SESSION['user'][ $key ], array('model' => '12311', 'part' => 'AA34F') );
}


print_r( $_SESSION['user'] );

这将为您提供以下输出:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Tim Miller
            [model] => 12311
            [part] => AA34F
        )
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58322630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档