迭代$ _session数组

时间:2015-05-17 17:24:53

标签: php arrays session

我创建了一个会话数组,如下所示

$_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

但是对于我的生活,我似乎无法弄清楚如何单独获取每个数组值并将它们分配给变量

2 个答案:

答案 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'];