我创建了一个会话数组,如下所示
$_SESSION['memberInfo']['memberFirstName'] = ($first_name);
$_SESSION['memberInfo']['memberLastName'] = ($surname);
$_SESSION['memberInfo']['hash'] = ($hash);
$_SESSION['memberInfo']['templateSrc'] = ($newTemplateSrc);
在其他页面中,我试图从数组中获取值,我尝试过foreach而while循环没有成功,我可以在var_dump中看到数组
var_dump($_SESSION['memberInfo']);
在控制台中显示为
array(4) {
["memberFirstName"]=>
string(8) "Geoffrey"
["memberLastName"]=>
string(6) "Turner"
["hash"]=>
string(60) "$2y$10$YBE1tc.BK7yq6bBr/JAlWuN0H8xGdoNSAWzU4/zfd1r3v7jprNBD2"
["templateSrc"]=>
string(61) "../userDirectory/558386500/html/Geoffrey_Turner_558386500.php"
}
在我尝试使用
尝试迭代数组的页面中foreach ($_SESSION['memberInfo'] as $name)
{
$first_name = $name['memberFirstName'];
}
响应我得到的节目是
警告:非法字符串偏移'memberFirstName'
我认为这意味着itteration正在读取一个空数组
我可以使用
回显数组foreach ($_SESSION['memberInfo'] as $key => $val) {
echo "$key = $val\n";
}
导致
memberFirstName = Geoffrey
memberLastName = Turner
hash = $2y$10$YBE1tc.BK7yq6bBr/JAlWuN0H8xGdoNSAWzU4/zfd1r3v7jprNBD2
templateSrc = ../userDirectory/558386500/html/Geoffrey_Turner_558386500.php
但是对于我的生活,我似乎无法弄清楚如何单独获取每个数组值并将它们分配给变量
答案 0 :(得分:2)
如何单独获取每个数组值并将它们分配给变量
您可以使用extract
提取每个值并将其分配给变量。
extract($_SESSION['memberInfo'])
这应该创建以下变量
$memberFirstName
,$memberLastName
,$hash
,$templateSrc
这是一个演示 http://ideone.com/XYpC7n
答案 1 :(得分:2)
你的foreach没有任何意义,因为你循环尝试分配单个变量太多次没有任何好处。所以这个要删除:
foreach ($_SESSION['memberInfo'] as $name =) {
$first_name = $name['memberFirstName'];
}
因为您只需要:
$first_name = $_SESSION['memberInfo']['memberFirstName'];