Я пытаюсь отобразить начинки для пиццы в корзине.
Я сохранил пиццу и топпинги в виде многомерного массива, с этой частью все в порядке, вот пример 1 элемента с 2-мя топпингами с использованием print_r ()
Array ( [Special Pizza2] => Array ( [id] => 22 [name] => Special Pizza [quantity] => 1 [des] => [top1] => Array ( [id] => 1 [des] => Beef [qty] => 1 ) [top2] => Array ( [id] => 2 [des] => Chicken [qty] => 1 ) ) )
Я искал в Интернете и на SOF, но все еще оставляю царапины на голове.
Как вы увидите в основном коде ниже, я использовал print_r () на каждом топпинге, чтобы я мог проверить массивы на 2 топпинга, и мне кажется, что они отображаются так, как я ожидал;
Array ( [id] => 1 [des] => Beef [qty] => 1 )
И
Array ( [id] => 2 [des] => Chicken [qty] => 1 )
Код:
$cart = $_SESSION["cart"];
$c = 0;
foreach($cart as $value)
{
if($c==0){
echo '<div class="crtitm" style="background-color:#e6e6e6;">';
$c = 1;
}else{
echo '<div class="crtitm">';
$c = 0;
}
echo '<b>' .$value[name]. '</b><br>';
//11 because there are 11 toppings
for ($x = 1; $x <= 11; $x++) {
$top = "top".$x;
$pizza = $value[$top];
print_r($pizza);
foreach($pizza as $return)
{
echo $return[des] .'<br>';
}
}
echo $value[des] .'<br>';
echo '</div>';
}
Теперь по какой-то причине мой код возвращается
1 * 1 021 * B * 1 022 * 1
И
2 * 1 031 * С
1 * +1033 *
Итак, я знаю, что это возвращает «id» вершины, затем первый символ «des», а затем «qty».
Я хочу, чтобы в моем коде буквально просто отображалось "Des" + разрыв строки, а затем следующая начинка и так далее
для справки, общий выход составляет ;
Специальная пицца
Array ([id] => 1 [des] => Beef [qty] => 1)
1
В
1
Array ([id] => 2 [des] => Chicken [qty] => 1)
2
C
1
И вывод print_r ($ cart) возвращает это ;
Array ([Special Pizza2] => Array ([id] => 22 [name] => Special Pizza [количество] => 1 [des] => [top1] => Array ([id] => 1 [des] => Говядина [кол-во] => 1) [top2] => Массив ([id] => 2 [des] => Цыпленок [кол-во] => 1))
Пожалуйста, скажите мне, где я ошибся, благодарю за помощь!