数组到字符串转换错误来自双数组

时间:2014-05-16 02:33:57

标签: php arrays double

我正在尝试做一个双重数组来回应#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] &nbsp $arrayvalue[1] </br>";
}
?>

3 个答案:

答案 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 &nbsp $arrayvalue[1][$key] </br>";
}
?>

基本上不是通过$ arrayvalue迭代,而是应该通过带有颜色的那个或带有宠物的那个。在我的示例中,我使用了颜色,然后使用$key引用宠物,以使它们保持同步。

如果可能的话,我建议使用两个单独的数组而不是一个,或者更逻辑地命名:

$array['colors'] = array("brown", "white");
$array['pets'] = array("$pet1", "$pet2");
foreach( $array['colors'] as $key => $color ) {
   echo "$color &nbsp $array['pets'][$key] </br>";
}

//or

$colors = array("brown", "white");
$pets = array("$pet1", "$pet2");
foreach( $colors as $key => $color ) {
   echo "$color &nbsp $pets[$key] </br>";
}

答案 1 :(得分:0)

您在foreach循环中引用$arrayvalue,当您应该使用$array

foreach($arrayvalue as $array)
{
    echo "{$array[0]} &nbsp {$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