2017-02-09 4 views
1

Попытка распечатать массив в списке с html и php. код я использую для этого:Php foreach, распечатать список

<ul> 
<?php 
    foreach ($arrayData as $cart): 
     echo '<li>',$cart['name'], $cart['price'], $cart['amount'],'</li>'; 
    endforeach; 
?> 
</ul> 

Эта работа dosen't, также делает остальную часть сайта (footer) не Е, показанные на всех.

Кроме того, это будет делать ту же проблему, и остальная часть сайта не появится.

<?php 
    foreach ($arrayData as $cart): 
     echo $cart['name']; 
    endforeach; 
?> 

Если я InstEd использовать var_dump и распечатать $ корзинки я получаю массив отверстий pinted, так что я получил данные в массиве.

var_dump код:

<?php 
    foreach ($arrayData as $cart): 
     var_dump($cart); 
    endforeach; 
?> 

Выход из var_dump:

object(Product)#1 (4) 
{ 
    ["id":"Product":private]=> string(1) "1" 
    ["name":"Product":private]=> string(8) "Xbox One" 
    ["price":"Product":private]=> string(1) "0" 
    ["amount"]=> int(55) 
} 
+0

Есть ли ошибки? – Jer

+0

@ C0dekid Нет, отмечая ... –

+0

Добавьте свой var dump '$ arrayData' – Machavity

ответ

3

$data - объект, а не массив.

$array['key'] - это обозначение для доступа к элементу в массиве, но $object->key - это объект для объекта.

Попробуйте это:

foreach ($arrayData as $cart): 
    echo '<li>' . $cart->name . ',' . $cart->price . ',' . $cart->amount . '</li>'; 
endforeach; 

Если это не работает (из-за частного характера элементов), вы, возможно, придется объявить функции как getName(), getPrice() и getAmount() в файле класса объекта, и использовать их в качестве таковых:

foreach ($arrayData as $cart): 
    echo '<li>' . $cart->getName(). ',' . $cart->getPrice(). ',' . $cart->getAmount(). '</li>'; 
endforeach; 

Пример заявления для функции getName(), в файле класса объекта:

public function getName() { 
    return $this->name; 
} 
+0

Я думаю, что это '$ cart-> getName()' будет работать – C2486

+0

Изменил тип данных публичным и использовал первый. Спасибо. –

+0

, если он отправит 'Выход из var_dump' в начале. Он будет решен очень рано. – C2486

-1

Вы уверены, что $ ArrayData не является Data Object? В этом случае попробуйте использовать $ cart-> name.

+1

вы пошли и полностью изменили свой ответ с http://stackoverflow.com/revisions/42137871/1, где вы должны были указать, что ваш первоначальный ответ не был решением. –

+0

В чем проблема? ... Все могут видеть, что я изменил ответ. –

+2

Совет для чата: первая половина вашего (нового/настоящего) ответа задает вопрос для разъяснения, который принадлежит комментарию. Вторая половина вашего ответа считается угаданием и далее просить OP попробовать что-то, что ИМХО также считается другим комментарием. Если бы вы опубликовали это в комментарии, и это решило бы вопрос, тогда OP мог бы предложить вам опубликовать его в качестве ответа. –