[英]Printing a nested array on View | Codeigniter
我正在使用會話構建一個購物車,我將每個披薩添加到一個數組中並傳遞給會話。 數組如下,
[cart_items] => Array
(
[0] => Array
(
[item_id] => 3
[item_name] => New York-Style Pizza
[price] => 800.00
[toppings] => Array
(
[0] => Array
(
[id] => 1
[name] => Mozarella Cheese
[price] => 150.00
)
[1] => Array
(
[id] => 7
[name] => Chicken Bacon
[price] => 250.00
)
)
[toppings_price] => 0
[quantity] => 1
[price_per_item] => 800
)
)
我能夠顯示項目 ID、比薩名稱、價格和數量但無法弄清楚顯示用戶在澆頭列中選擇的澆頭名稱。我該怎么做>
看法
以下代碼顯示了我從數組中獲取值的方式,
<?php $list = $this->session->userdata('cart_items');
if($list==Null) {
print_r("There are no items in the your cart");
}else{
foreach ($list as $item=>$value){
echo "<li class='list-group-item d-flex justify-content-between lh-condensed'>";
print_r("<div>".$value['item_id']."</div>");
print_r("<div>".$value['item_name']."</div>");
print_r("<div>".$value['price']."</div>");
$toppings_names=array($value['toppings']);
foreach ($toppings_names as $name=>$val){
print_r("<div>");
print_r($val['name']);
print_r("</div>");
}
print_r("<div>".$value['quantity']."</div>");
echo "</li>";
}
}
?>
輸出
我期待的輸出如下
商品 ID |商品名稱|價格|Toppings(選定的澆頭名稱)|數量
列表未顯示我收到錯誤“未定義索引:名稱”。
您必須在topping
循環,因為它也是數組,因此您可以檢查其中的每個項目。
<?php
$list = $this->session->userdata('cart_items'); //Array
if ($list == null) {
print_r("There are no items in the your cart");
} else {
foreach ($list as $item => $value) {
echo "<li class='list-group-item d-flex justify-content-between lh-condensed'>";
print_r("<div>".$value['item_id']."</div>");
print_r("<div>".$value['item_name']."</div>");
print_r("<div>".$value['price']."</div>");
// toppings array is empty (nothing selected)
if ($value['toppings'] == null) {
print_r("<div>There is no toppings selected</div>");
} else {
foreach ($value['toppings'] as $val) {
// here you can access indexes id, name, price in toppings array
print_r("<div>");
print_r($val['name']);
print_r("</div>");
}
}
print_r("<div>".$value['quantity']."</div>");
echo "</li>";
}
}
?>
您可以在沒有變量的情況下執行foreach
:
if (!empty($value['toppings'])) {
foreach ($value['toppings'] as $val) {
print_r("<div>");
print_r($val['name']);
print_r("</div>");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.