我想知道在会话数组中是否可以有一个关联数组?如果是这样,最好的方法是什么,我该如何循环呢?我尝试了以下但它似乎没有工作:
//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']
吗?
答案 0 :(得分:2)
是的,您可以在会话数组中拥有关联数组。您还可以使用for
或foreach
循环遍历它。 e.g:
$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"