2014-05-16 2 views
0

Я пытаюсь сделать двойной массив, чтобы вывести «коричневую собаку» и «белую кошку». Я получил ошибку «Array to string conversion» в строке, где я пытаюсь вывести инструкцию. Как я могу исправить эту ошибку? Заранее спасибо. Ниже приведен мой код:Array To String Ошибка преобразования из двоичного массива

<? 
$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>"; 
} 
?> 

ответ

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 
+0

спасибо. после двойной проверки, чтобы убедиться, что слово combos находится в правильном порядке ... это работает очень хорошо .. спасибо за код и поймать ошибку кода из другого кода .. спасли меня много времени и путаницы в будущее :) – user3595005

+0

еще один вопрос ... как бы я просто откликнулся только на одну часть? Я попробовал echo $ arrayvalue [0] [$ i] '
'; но это не помогло ... любая помощь будет оценена :) – user3595005

+0

@ user3595005 Я предполагаю, что «одна часть» означает «коричневая собака» или просто «белая кошка» ... в этом случае [** посмотреть при этом **] (http://3v4l.org/6fhMY), это должно быть полезно :) –

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>"; 
} 
0

Вы ссылающийся $arrayvalue внутри вашего цикла Еогеасп, когда вы должны использовать $array

foreach($arrayvalue as $array) 
{ 
    echo "{$array[0]} &nbsp {$array[1]} </br>"; 
} 
+0

это работает хорошо ... Большое спасибо :) – user3595005

+0

@ user3595005 Как делает эту работу в отношении вашего вопроса? Это напечатает 'brown white
dog cat' [** См. Пример здесь **] (http://codepad.org/uq5YMfsX) –

+0

woah ... хороший улов ... я был просто рад видеть, что 2 строки являются эхом я не проверял дважды, если это были правильные комбинации слов ... вы правы, это эхо слова в неправильном порядке ... спасибо за уловку .. я просмотрю другие коды .. спасибо :) – user3595005

Смежные вопросы