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的对,我只是不知道如何单独获取它们并分配给变量