Php 分步骤设置会话
是否可以在不同时间将多个会话元素设置为同一会话?我有2个类,每个类应该设置2个会话元素。我得到的是一个空数组。我在每页上使用Php 分步骤设置会话,php,session,Php,Session,是否可以在不同时间将多个会话元素设置为同一会话?我有2个类,每个类应该设置2个会话元素。我得到的是一个空数组。我在每页上使用session\u start() 此外,我可以在单个类中成功地设置会话,但在每个类中设置时会返回一个空数组 // User class $_SESSION['user'] = array('id' => 1); $_SESSION['user'] = array('name' => 'Tim Miller'); // Part class $_SESSION
session\u 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应该在串行类中设置,您可以设置它,但需要使用不同的方法。您可以创建具有不同值的会话数组 您必须在需要使用会话的每个文件的顶部写入会话\ u 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
)
)
在哪里设置会话变量并不重要。其他原因导致了这个问题。你能再详细介绍一下你在哪里/如何设置这些数据吗?另外,您是否知道在每种情况下都会覆盖
user
session变量?@Waterlomatt,谢谢。我还认为可能是其他原因导致了这个问题,但我想要求核实。我试图简单地在不同的时间向会话数组添加元素。我已经编辑了我的帖子来展示更多我想要的,好吗。您如何为不同的用户工作?我的意思是,您在不同的文件中设置会话,所以您也需要跟踪用户。顺便说一句,上述解决方案对您有效吗?我想我忘了在设置变量的页面顶部使用session\u start
。它正在工作。谢谢Vantiya。