好的,所以我试图掌握多维数组,我知道它们是什么以及它们做了什么。
在下面的示例中,我创建了{可能不是最有效的方式)Cars array
。
在这个数组中,我有两个包含数组的变量,一个用于模型,另一个用于颜色。
我正在寻找的结果是回应每辆车的所有车型和颜色。
例如
Bmw Red Saloon,宝马红色两厢车,宝马红色庄园,宝马绿色沙龙, 宝马绿色两厢车等等。
到目前为止,在下面的代码中,我可以得到汽车的品牌,但之后它与数组阵列相呼应。
<?php
$colours = array("red","green","blue");
$models = array("hatchback","saloon","estate");
$cars= array(
array("Bmw",$colours,$models),
array("Volvo",$colours,$models),
array("VW",$colours,$models),
array("Mercedes",$colours,$models)
);
foreach ($cars as $innerArray){
foreach ($innerArray as $value) {
echo $value . '<br/>';
}
}
?>
我知道foreach声明是错误的,但这就是我被困住的地方。如果你可以帮助我,或者甚至更好地解释它背后的逻辑,那就太棒了!
答案 0 :(得分:3)
使用以下任何可用函数转储顶级数组变量:
答案 1 :(得分:2)
在你的数组'cars'中有字符串和数组,所以当你回显$ value时,你试图以2/3的次数回显数组。
如果您只想回应这些内容,我建议您使用
的print_r()
答案 2 :(得分:1)
其他答案应该对您有用,只是为了完整,这是array_walk_recursive代码:
function walkFunction($value,$key) {
echo "$key: $value<br/>";
}
array_walk_recursive($cars,"walkFunction");
答案 3 :(得分:0)
你的$ value有时是一个字符串,有时候是一个数组。 Echo不适用于数组。尝试使用var_dump而不是echo。
foreach ($cars as $innerArray){
foreach ($innerArray as $value)
{var_dump($value);
}
}
答案 4 :(得分:0)
试试这个:
$r = count($cars);
for ($row = 0; $row < $r; $row++)
{
echo "<ul>";
for ($col = 0; $col < 3; $col++)
{
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
答案 5 :(得分:0)
我不会尝试组合你的数组,这就是你的循环所针对的。保持简单 - 颜色阵列有颜色,模型有模型,汽车有汽车。然后循环中的变量名称更有意义,并且更容易循环。然后你要做的就是遍历每一个。
$colours = array("red","green","blue");
$models = array("hatchback","saloon","estate");
$cars = array("Bmw","Volvo","VW","Mercedes");
foreach($cars as $car)
{
foreach($colours as $colour)
{
foreach($models as $model)
{
echo $car.' '.$colour.' '.$model.'<br>';
}
}
}