在PHP中使用for和foreach打印不同名称的数组



我是PHP新手,想知道是否有一个简单的方法来解决这个问题。

$class_1 = array("Name" => "Lule", "Surname" => "Mirela", "Email" => "Lule@gmail.com", "Birthday" => "30/04/2001");
$class_2 = array("Name" => "Aida", "Surname" => "Besim", "Email" => "Aida@gmail.com", "Birthday" => "16/11/2001");
$class_3 = array("Name" => "Flaka", "Surname" => "Agim", "Email" => "Flaka@gmail.com", "Birthday" => "23/09/2003");
for($i = 1; $i <= 3; $i++) {
foreach ($class_1 as $key => $val) {
echo $key. ": ";
echo $val. "<br/>";
}
}

从技术上讲,我认为可以只写$class_$i,但这似乎不起作用。我不熟悉PHP语法。

尝试使用多维数组。像这样。


$class[0] = array("Name" => "Lule", "Surname" => "Mirela", "Email" => "Lule@gmail.com", "Birthday" => "30/04/2001");
$class[1] = array("Name" => "Aida", "Surname" => "Besim", "Email" => "Aida@gmail.com", "Birthday" => "16/11/2001");
$class[2] = array("Name" => "Flaka", "Surname" => "Agim", "Email" => "Flaka@gmail.com", "Birthday" => "23/09/2003");
for($i = 0; $i <= 2; $i++) {
foreach ($class[$i] as $key => $val) {
echo $key. ": ";
echo $val. "<br/>";
}
}

还有,把class作为变量名是一个糟糕的主意。

你要找的东西叫做"变量"。你必须创建一个包含数组名的变量并使用双美元符号:

$class_1 = array("Name" => "Lule", "Surname" => "Mirela", "Email" => "Lule@gmail.com", "Birthday" => "30/04/2001");
$class_2 = array("Name" => "Aida", "Surname" => "Besim", "Email" => "Aida@gmail.com", "Birthday" => "16/11/2001");
$class_3 = array("Name" => "Flaka", "Surname" => "Agim", "Email" => "Flaka@gmail.com", "Birthday" => "23/09/2003");
for($i = 1; $i <= 3; $i++) {
$array = "class_$i";
foreach ($$array as $key => $val) {
echo $key. ": ";
echo $val. "<br/>";
}
}

或者更简洁地说:

$class_1 = array("Name" => "Lule", "Surname" => "Mirela", "Email" => "Lule@gmail.com", "Birthday" => "30/04/2001");
$class_2 = array("Name" => "Aida", "Surname" => "Besim", "Email" => "Aida@gmail.com", "Birthday" => "16/11/2001");
$class_3 = array("Name" => "Flaka", "Surname" => "Agim", "Email" => "Flaka@gmail.com", "Birthday" => "23/09/2003");
for($i = 1; $i <= 3; $i++) {
foreach (${"class_$i"} as $key => $val) {
echo $key. ": ";
echo $val. "<br/>";
}
}

然而,在我看来,按照@Akshay Pose的建议制作数组通常更好。

最新更新