-2

我想知道会话数组中是否可以有一个关联数组?如果是这样,最好的方法是什么,我该如何循环呢?我尝试了以下方法,但似乎不起作用:

//The variables are post variables from a form
$_SESSION['users'][$id] = array('name'=>$name, 'status'=>$status, 'salary'=>"20000");

以下是我尝试遍历会话数组的方式:

foreach ($_SESSION['users'] as $id=>$value) {
echo $value;
}

另外,如果我知道一个 id,我怎么能得到这个名字?我可以$_SESSION['users']['1234']['name']吗?

4

1 回答 1

2

是的,您可以在会话数组中拥有一个关联数组。您也可以使用 afor或循环遍历它foreach。例如:

$array = $_SESSION['users'][$id];

foreach($array as $key => $value) {
    var_dump($array[$key]); //Will dump info about a single element
}

但是,查看您的错误消息或您正在尝试执行的操作以及无法正常工作的其他详细信息会很有帮助。

编辑

根据您更新的问题,由于您正在访问数组和数组(理论上),您需要将一个 foreach 与另一个 foreach 嵌套以获得您的值。

foreach($_SESSION['users'] as $arrays) {
    foreach($arrays as $arrKey => $arrVal) {
        var_dump($arrays[$arrKey]);
    }
}

在你的数据上运行它会输出(用我自己的假数据来填充变量):

string(7) "johndoe"
string(6) "active"
string(5) "20000"
于 2013-10-14T19:26:24.527 回答