将php中的数组从post更改为会话变量
几天前,我发布了一篇关于如何处理阵列的帖子,得到了很好的回复。 这正是我需要的将php中的数组从post更改为会话变量,php,arrays,forms,post,Php,Arrays,Forms,Post,几天前,我发布了一篇关于如何处理阵列的帖子,得到了很好的回复。 这正是我需要的 foreach ($_POST['name'] as $key=>$name) { echo "Name: $name Age: {$_POST['age'][$key]}"; } 问题是,我需要的不是打印,而是坚持。我正在制作会话变量,比如$\u会话[“name”]=“some name” 我想知道如何将POST数组从上面转储到$SESSION[array]; 最终,能够在任意页面上重新转储所有数据。
foreach ($_POST['name'] as $key=>$name) {
echo "Name: $name Age: {$_POST['age'][$key]}";
}
问题是,我需要的不是打印,而是坚持。我正在制作会话变量,比如$\u会话[“name”]=“some name”代码>
我想知道如何将POST数组从上面转储到$SESSION[array];
最终,能够在任意页面上重新转储所有数据。我需要访问数组中的$name和$age,并希望它们关联起来。
用java我会的
String[][] something = new String[10][2]; //10 is size and 2 allows for name at index 0 and age at index 1.
要记住的事情。未设置POST数组的大小。它们可以是0到100之间的任何输入
在保存阵列的同时,请告诉我如何访问它。我习惯于java,所以php数组对我来说是新的
编辑
在尝试了johnps post之后
我的页面看起来像这样
foreach ($_POST['name'] as $key=>$name) {
echo "Name: $name Age: {$_POST['age'][$key]} <br/>";
$_SESSION['post_data'][$key] = $name;
$_SESSION['post_data'][$key] = $_POST['age'];
echo $key;
}
然而,我尝试了以下方法以获得“名称位置”作为输出,但没有任何效果
echo $_SESSION['post_data']['name'];//doesnt have an output
echo $_SESSION['post_data'][$key];//out puts "Array" and nothing else
我希望输出是
名字和位置,大人。
就像foreach循环现在正在做的一样,但是从一个二维数组开始。谢谢大家。您可以在PHP中轻松使用多维数组。您的示例不起作用的原因是它一直覆盖相同的索引
//Assuming your POST data consists of age => name pairs, you store it like this
$_SESSION['post_data'] = array();
$count = 0;
foreach ($_POST['name'] as $age => $name) {
$_SESSION['post_data'][$count]['age'] = $age;
$_SESSION['post_data'][$count]['name'] = $name;
$count++;
}
要访问它,只需在其上迭代或使用键
//iterating
foreach ($_SESSION['post_data'] as $person) {
echo "Name: {$person['name']} Age: {$person['age']} <br/>";
}
//using the key
echo $_SESSION['post_data'][0]['age']; //print the first person's age
echo $_SESSION['post_data'][0]['name']; //print the first person's name
您可以像在PHP中一样轻松地使用多维数组。您的示例不起作用的原因是它一直覆盖相同的索引
//Assuming your POST data consists of age => name pairs, you store it like this
$_SESSION['post_data'] = array();
$count = 0;
foreach ($_POST['name'] as $age => $name) {
$_SESSION['post_data'][$count]['age'] = $age;
$_SESSION['post_data'][$count]['name'] = $name;
$count++;
}
要访问它,只需在其上迭代或使用键
//iterating
foreach ($_SESSION['post_data'] as $person) {
echo "Name: {$person['name']} Age: {$person['age']} <br/>";
}
//using the key
echo $_SESSION['post_data'][0]['age']; //print the first person's age
echo $_SESSION['post_data'][0]['name']; //print the first person's name
您可以直接将$\u POST['name']
存储到$\u SESSION[“name”]
,并将其保存
$_SESSION["name"] = $_POST['name']
您可以直接将$\u POST['name']
存储到$\u SESSION[“name”]
,并将其保存
$_SESSION["name"] = $_POST['name']
我该如何使用相同的键向其中添加$age。所以我可以像你在“访问它”中发布的那样回忆它,但也可以访问我更新了答案的同一姓名(人)的年龄。但原理是一样的,只要你有钥匙,你就可以进入数组中的任何级别。很抱歉,这很烦人,但是我应该在foreach循环中添加这些数据吗。因为它是从帖子中粘贴的true或false?是的,您可以将它添加到循环中。与循环POST变量不同,您只需使用$age=>$nameJohnP更新我的POST来循环会话变量,以更好地概述我需要什么。非常感谢您的帮助,我将如何使用相同的密钥向其中添加$age。所以我可以像你在“访问它”中发布的那样回忆它,但也可以访问我更新了答案的同一姓名(人)的年龄。但原理是一样的,只要你有钥匙,你就可以进入数组中的任何级别。很抱歉,这很烦人,但是我应该在foreach循环中添加这些数据吗。因为它是从帖子中粘贴的true或false?是的,您可以将它添加到循环中。与循环POST变量不同,您只需使用$age=>$nameJohnP更新我的POST来循环会话变量,以更好地概述我需要什么。非常感谢你的帮助