是否可以在不同的时间将多个会话元素设置为同一会话?我有两个类,每个类应该设置两个会话元素。我得到的是一个空数组。我在每个页面上都使用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');编辑:
下面是我想要创建的数组:
Array (
[user] => Array (
[id] => 1
[name] => Tim Miller
[model] => 12311
[part] => AA34F
[order] => 119026
[serial] => 12001923S3
)
)元素0和1应该在用户类中设置,元素2-3应该在部件类中设置,元素4-5应该在序列类中设置。
发布于 2019-10-10 12:23:14
您可以设置它,但是需要使用一些不同的方法。您可以创建一个具有不同值的会话数组。
您必须在需要使用会话的每个文件的顶部写入session_start()。
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'] );输出情况如下:
Array
(
[0] => Array
(
[id] => 1
)
[1] => Array
(
[name] => Tim Miller
)
[2] => Array
(
[model] => 12311
)
[3] => Array
(
[part] => AA34F
)
)这取决于你如何把这个数组装好。
编辑:
要获得您希望的格式输出,并在以后的不同文件中将值添加到数组中,您可以尝试如下:
// 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'] );这将为您提供以下输出:
Array
(
[0] => Array
(
[id] => 1
[name] => Tim Miller
[model] => 12311
[part] => AA34F
)
)https://stackoverflow.com/questions/58322630
复制相似问题