$ _SESSION - это массив, но для сравнения данных вы можете создавать массивы внутри этого массива.
Если вы сделаете это с вашими данными, вам не нужно будет переименовывать ключи в параграфах имени, поскольку они будут уникальными в новом дополнительном массиве.
ВНИМАНИЕ: Использование экстракта в глобальной области действия является противным, оно распыляет переменные в ваш глобальный охват, который позже только смутит вас или человека, который должен поддерживать ваши сценарии.
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';
'$ _SESSION [$ var] = $ value'? – Ad5001
Вы хотите, чтобы эхо значение, сохраненное в переменной сеанса, было тем, что вы хотите? –
Вы хотите заменить существующие ключи новыми значениями? – RiggsFolly