尽管我付出了很多努力,但仍无法找到合适的解决方案。这是问题所在:
所有数据均来自具有名为name[]
,gender[]
和age[]
的文本字段的表单。
print_r($_POST)
如下:
[name] => Array ([2] => Adam [6] => Suzy )
[gender] => Array ( [2] => male [6] => female )
[age] => Array ( [2] => 30 [6] => 25 )
我正在尝试这样迭代:
foreach ($array as $value)
{
echo $value['name'].$value['gender'].$value['age']."<br>";
}
结果应如下所示:
Adam-男性-30
Suzy-女-25
预先感谢您的帮助。
答案 0 :(得分:2)
您很接近-但是创建数组的语法略有不同。
sql = """ SELECT * FROM table WHERE id = '00000201000012EB' """
conn.execute(sql)
您有两个选择-您可以创建一个包含两个项目的数组;每个人都有一个人的三个细节。这就是我所做的,并且很适合您显示的循环。
或者您可以具有三个平行的数组-一个带有两个名称,一个带有两个性别,一个带有两个年龄。 第二种方式更像:
$array = array (
array('name' => 'Adam', 'gender' => 'male', 'age' => 30),
array('name' => 'Suzy', 'gender' => 'female', 'age' => 25),
);
foreach ($array as $value)
{
echo $value['name'].$value['gender'].$value['age']."<br>";
}
但是要从中获得想要的输出会更加困难。
$array = array(
'name' => array('Adam','Suzy'),
'gender' => array('male','female'),
'age' => array(30,25)
);
答案 1 :(得分:1)
$_POST
中的每个数组都具有相同的键集:
$_POST = array(
'name' => array(2 => 'Adam', 6 => 'Suzy'),
'gender' => array(2 => 'male', 6 => 'female'),
'age' => array(2 => '30', 6 => '25')
)
您可以迭代内部数组之一,并使用其键访问其他数组中的相应值。
foreach ($_POST['name'] as $key => $name) {
echo $name . $_POST['gender'][$key] . $_POST['age'][$key] . "<br>";
}
答案 2 :(得分:0)
foreach ($array as $id=>$value)
{
echo $value . $gender[$id] . $age[$id] . "<br>";
}
答案 3 :(得分:0)
首先,我修改了您在问题上发布的数组结构,因为它对php
中的无效无效。然后,如果我没有误解您的要求,那么您就拥有这个数组结构,并且您想将其存档-
<?php
$array = array (
'name'=>array('Adam', 'Suzy'),
'gender'=>array('male', 'female'),
'age'=>array(30, 25)
);
$i=0;
foreach ($array as $key=>$value)
{
if($i==2)break;
echo $array['name'][$i]."-".$array['gender'][$i] ."-". $array['age'][$i] ."<br>";
$i++;
}
?>
OR
<?php
$array = array (
'name'=>array('Adam', 'Suzy'),
'gender'=>array('male', 'female'),
'age'=>array(30, 25)
);
foreach ($array['name'] as $index=>$name)
{
echo $name."-".$array['gender'][$index] ."-". $array['age'][$index] ."\n";
}
?>
程序输出:
Adam-male-30
Suzy-female-25
答案 4 :(得分:0)
@晴 Veeeery接近我2003年使用的那位先生。这是有效的解决方案:
<?
echo "<pre>";
print_r($_POST);
echo "</pre>";
foreach ($_POST['name'] as $key => $name) {
echo "NAME=".$_POST['name'][$key]."gender=" . $_POST['gender'][$key] . "AGE=".$_POST['age'][$key] . "<br>";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
WOKSING SOLUTION:
<code>echo "<pre>";
print_r($_POST);
echo "</pre>";
foreach ($_POST['name'] as $key => $name) {
echo "NAME=".$_POST['nemae'][$key]."gender=" . $_POST['gender'][$key] . "AGE=".$_POST['age'][$key] . "<br>";
}
</code>
<form method="post">
<input type="text" name="name[]" />
<input type="text" name="gender[]"/>
<input type="text" name="age[]"/>
<br />
<input type="text" name="name[]" />
<input type="text" name="gender[]"/>
<input type="text" name="age[]"/>
<input type="submit" />
</form>
</body>
</html>