PHP多维数组(含对象)取值问题:无法获取qty、name、price字段
解决PHP嵌套数组/对象中提取商品信息的问题
看你的数组结构,my_cart 是个以rowid为键的关联数组,每个元素又包含了商品的完整信息数组。你之前的代码在遍历my_cart时直接输出数组变量,自然看不到具体的qty、name、price——得精准访问这些数组键才行。
下面是修正后的完整代码:
foreach($cart_data as $cd){ echo 'ID Table: '.$cd->id.'<br>'; echo 'ID customer: '.$cd->id_customer.'<br>'; $data = $cd->my_cart; if(is_array($data)){ // 遍历my_cart里的每一件商品 foreach($data as $item){ echo '商品名称: '.$item['name'].'<br>'; echo '购买数量: '.$item['qty'].'<br>'; echo '商品单价: '.$item['price'].'<br><br>'; } } }
关键修正点说明:
- 外层遍历
$cart_data的逻辑是对的,能正常取出对象里的id和id_customer; - 内层遍历
my_cart时,$item是单个商品的关联数组,直接通过$item['name']、$item['qty']、$item['price']就能获取对应的值; - 如果怕数组键不存在导致报错,可以提前用
isset($item['name'])做判断,比如:echo isset($item['name']) ? '商品名称: '.$item['name'].'<br>' : '';,不过如果你的数组结构固定的话,直接访问也没问题。
运行这段代码就能正确输出每件商品的名称、数量和单价啦~
内容的提问来源于stack exchange,提问作者rilly
相关产品推荐
相关产品推荐

