Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 遍历$\u会话数组_Php_Arrays_Session - Fatal编程技术网

Php 遍历$\u会话数组

Php 遍历$\u会话数组,php,arrays,session,Php,Arrays,Session,我创建了一个会话数组,如下所示 $_SESSION['memberInfo']['memberFirstName'] = ($first_name); $_SESSION['memberInfo']['memberLastName'] = ($surname); $_SESSION['memberInfo']['hash'] = ($hash); $_SESSION['memberInfo']['templateSrc'] = ($newTemplateSrc); 在其他页面中,我试图从我尝试

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

$_SESSION['memberInfo']['memberFirstName'] = ($first_name);
$_SESSION['memberInfo']['memberLastName'] = ($surname);
$_SESSION['memberInfo']['hash'] = ($hash);
$_SESSION['memberInfo']['templateSrc'] = ($newTemplateSrc);
在其他页面中,我试图从我尝试过的foreach数组中获取值,而while循环没有成功,我可以在var_转储中看到该数组

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”非法

我相信这表明,它正在读取一个空数组

我可以使用

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
但就我的一生而言,我似乎无法弄清楚如何分别获取每个数组值并将它们分配给变量

如何分别获取每个数组值并将其分配给变量

您可以使用它来提取每个值并将其分配给变量

extract($\u SESSION['memberInfo'])
这将创建以下变量

$memberFirstName
$memberLastName
$hash
$templateSrc

这是一个演示

如何分别获取每个数组值并将其分配给变量

您可以使用它来提取每个值并将其分配给变量

extract($\u SESSION['memberInfo'])
这将创建以下变量

$memberFirstName
$memberLastName
$hash
$templateSrc


这里是一个演示,您的foreach没有任何意义,因为您循环一个变量太多次尝试分配单个变量都没有任何好处。因此,需要删除以下内容:

foreach ($_SESSION['memberInfo'] as $name =) {
    $first_name = $name['memberFirstName'];
}
因为您只需要:

$first_name = $_SESSION['memberInfo']['memberFirstName'];

您的foreach没有任何意义,因为您尝试循环一个变量太多次而没有任何好处。因此,需要删除以下内容:

foreach ($_SESSION['memberInfo'] as $name =) {
    $first_name = $name['memberFirstName'];
}
因为您只需要:

$first_name = $_SESSION['memberInfo']['memberFirstName'];

虽然在技术上是正确的,但这是一种相当糟糕的方法,因为突然之间你会“不知从哪里”得到一堆新的变量。直接从数组中获取数据更安全,代码也更清晰。它可以工作,尽管与前面提到的一样,它就像创建的变量在以太中一样speak@MarcinOrlowski,你说得对。但是,在注意到OP在会话中的
memberInfo
下维护了一个数组之后,我仍然建议使用这种方法作为答案。因此,我假设进入
memberInfo
的数据是预期的。虽然技术上是正确的,但这是一种相当糟糕的方法,因为突然间你会“不知从哪里”得到一堆新变量。直接从数组中获取数据更安全,代码也更清晰。它可以工作,尽管与前面提到的一样,它就像创建的变量在以太中一样speak@MarcinOrlowski,你说得对。但是,在注意到OP在会话中的
memberInfo
下维护了一个数组之后,我仍然建议使用这种方法作为答案。因此,我假设进入
memberInfo
的数据是预期的。变量
$\u SESSION['memberInfo']
是一个数组,如您使用
var\u dump所示。foreach的
foreach
将按正常方式遍历该数组。您请求数组的“value”端,但调用了它
$name
。要获取$name和$value,您需要执行以下操作:
$\u会话['memberInfo']as$name=>$value
@Ryan Vincent我确实尝试过,因为在回音中我可以看到使用$key=>$value的配对,我只是不知道如何单独获取它们并将变量分配给变量
$\u会话['memberInfo']
是一个数组,如您使用
var\u dump所示。foreach的
foreach
将按正常方式遍历该数组。您请求数组的“value”端,但调用了它
$name
。要获取$name和$value,您需要执行以下操作:
$\u SESSION['memberInfo']as$name=>$value
@Ryan Vincent我确实尝试过,因为在回音中我可以看到使用$key=>$value的对,我只是不知道如何单独获取它们并分配给变量