几天前,我发布了here并对如何处理数组做了很好的回应。 这正是我所需要的
foreach ($_POST['name'] as $key=>$name) {
echo "Name: $name Age: {$_POST['age'][$key]}";
}
问题是,我需要它不要打印但要坚持。我正在制作会话变量,如$_SESSION["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后
我的页面看起来像这样
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;
}
并且页面上的输出是
Name: The name potion Age: adult
1
然而,我已尝试以下方法将“名称位置”作为输出,但没有任何工作
echo $_SESSION['post_data']['name'];//doesnt have an output
echo $_SESSION['post_data'][$key];//out puts "Array" and nothing else
我想要输出 名称Position,Adult。 就像foreach循环现在正在做的那样,但是来自2d数组。谢谢你们。
答案 0 :(得分:3)
您可以在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
视觉上您的数据看起来像这样(示例)
array(
0 => array(
age => 12,
name => jane
),
1 => array(
age => 18,
name => jack
),
2 => array(
age => 25,
name => jones
),
)
答案 1 :(得分:1)
您可以直接将$_POST['name']
存储到$_SESSION["name"]
,它会一直存在,
$_SESSION["name"] = $_POST['name']