我正在尝试做一个双重数组来回应#34;棕色的狗"和#34;白猫"。我得到了一个"数组到字符串转换"在我试图回应声明的行上的错误。我该如何解决这个错误?提前致谢。以下是我的代码:
<?
$pet1 = "dog";
$pet2 = "cat";
$arrayvalue = array();
$arrayvalue[0] = array("brown, "white");
$arrayvalue[1] = array("$pet1", "$pet2");
foreach($arrayvalue as $array)
{
echo "$arrayvalue[0]   $arrayvalue[1] </br>";
}
?>
答案 0 :(得分:0)
您需要稍微编辑foreach循环。此外,您的报价上面有问题。尝试:
<?
$pet1 = "dog";
$pet2 = "cat";
$arrayvalue = array();
$arrayvalue[0] = array("brown", "white");
$arrayvalue[1] = array("$pet1", "$pet2");
foreach( $arrayvalue[0] as $key => $color ) {
echo "$color   $arrayvalue[1][$key] </br>";
}
?>
基本上不是通过$ arrayvalue迭代,而是应该通过带有颜色的那个或带有宠物的那个。在我的示例中,我使用了颜色,然后使用$key
引用宠物,以使它们保持同步。
如果可能的话,我建议使用两个单独的数组而不是一个,或者更逻辑地命名:
$array['colors'] = array("brown", "white");
$array['pets'] = array("$pet1", "$pet2");
foreach( $array['colors'] as $key => $color ) {
echo "$color   $array['pets'][$key] </br>";
}
//or
$colors = array("brown", "white");
$pets = array("$pet1", "$pet2");
foreach( $colors as $key => $color ) {
echo "$color   $pets[$key] </br>";
}
答案 1 :(得分:0)
您在foreach循环中引用$arrayvalue
,当您应该使用$array
时
foreach($arrayvalue as $array)
{
echo "{$array[0]}   {$array[1]} </br>";
}
答案 2 :(得分:0)
我能看到这个工作的唯一方法是使用for
循环。如果您需要保持当前结构,请执行以下操作:
for ($i=0; $i<2; $i++)
echo $arrayvalue[0][$i] . ' ' . $arrayvalue[1][$i] . '<br>';
以下是我将如何重写程序,保持当前数组结构并使用上面的for
循环来解决您的问题:
$pet1 = 'dog';
$pet2 = 'cat';
$arrayvalue = array(
array('brown', 'white'),
array($pet1, $pet2)
);
for ($i=0; $i<2; $i++)
echo $arrayvalue[0][$i] . ' ' . $arrayvalue[1][$i] . '<br>';
输出:
brown dog
white cat