$_SESSION 是一个数组,但要比较数据,您可以在该数组中创建数组。
如果您对数据执行此操作,则无需重命名名称值对中的键,因为它们在新的子数组中是唯一的。
警告:在全局范围内使用 extract 很糟糕,它会将变量喷射到您的全局范围内,这只会让您或必须维护您的脚本的人感到困惑。
session_start();
$_SESSION["pr_first_name"] ="Thomas";
$_SESSION["pr_middle_name"] ="Richard";
$_SESSION["pr_last_name"] ="Peterson";
$t = array(
'pr_first_name' => $_SESSION["pr_first_name"],
'pr_middle_name' => $_SESSION["pr_middle_name"],
'pr_last_name' => $_SESSION["pr_last_name"]
);
$_SESSION['new_names'] = $t;
// now amend the new occurance in SESSION however you like
$_SESSION['new_names']['pr_first_name'] = 'Some new value';
$_SESSION['new_names']['pr_first_name'] = 'Some new value';
$_SESSION['new_names']['pr_first_name'] = 'Some new value';
或者,如果您想要复制 $_SESSION 中出现的更大列表。
session_start();
function new_names($sess)
{
$picks = ['pr_first_name', 'pr_middle_name', 'pr_last_name' ];
$new = [];
foreach ( $picks as $name) {
$new[$name] = $sess[$name];
}
return $new;
}
$_SESSION["pr_first_name"] ="Thomas";
$_SESSION["pr_middle_name"] ="Richard";
$_SESSION["pr_last_name"] ="Peterson";
$_SESSION['new_names'] = new_names($_SESSION);
// now amend the new occurance in SESSION however you like
$new = $_SESSION['new_names'];
$new['pr_first_name'] = 'Some new value';
$new['pr_first_name'] = 'Some new value';
$new['pr_first_name'] = 'Some new value';
当然,如果您从一开始就使用这种划分。创建一组新数据会更容易
$_SESSION['first']["pr_first_name"] ="Thomas";
$_SESSION['first']["pr_middle_name"] ="Richard";
$_SESSION['first']["pr_last_name"] ="Peterson";
$_SESSION['new'] = $_SESSION['first'];
$new = $_SESSION['new'];
$new['pr_first_name'] = 'Some new value';
$new['pr_first_name'] = 'Some new value';
$new['pr_first_name'] = 'Some new value';