PHP foreach 中提供的参数无效

标签 php

我试图用 foreach 循环读出这个嵌套数组,但收到错误“foreach 中提供的参数无效”

Array ( 
  [regenerated] => 1302668837 
  [id] => 2 
  [qty] => 1 
  [price] => 1200 
  [name] => support 
  [optione] => 
  [cart_contents] => Array ( 
                      [c4ca4238a0b923820dcc509a6f75849b] => Array ( 
                                                             [rowid] => c4ca4238a0b923820dcc509a6f75849b 
                                                             [id] => 1 
                                                             [qty] => 1 
                                                             [price] => 29.95 
                                                             [name] => Training DVD 
                                                             [optione] => 
                                                             [subtotal] => 29.95 
                                                           ) 
                      [c81e728d9d4c2f636f067f89cc14862c] => Array ( 
                                                             [rowid] => c81e728d9d4c2f636f067f89cc14862c 
                                                             [id] => 2 
                                                             [qty] => 1 
                                                             [price] => 1200 
                                                             [name] => support 
                                                             [optione] => 
                                                             [subtotal] => 1200 
                                                           ) 
                      [total_items] => 2 
                      [cart_total] => 1229.95 
                    ) 
  [johndoe] => audio 
  [totalItems] => 2 
) 

$cart_contentz = $_SESSION['cart_contents'];

foreach($cart_contentz as $itemz => $valuez) {

    foreach($valuez as $key1 => $value1) {

echo "$key1: $value1<br>"; 
}

最佳答案

主数组的第一层包含子数组的项目和一些不是子数组的项目。您的第二个循环不适用于非数组项。 因此,您的代码应该是:

foreach($cart_contentz as $itemz => $valuez) {
  if (is_array($valuez)) {
    foreach($valuez as $key1 => $value1) {
      echo "$key1: $value1<br>"; 
    }
  } else {
    echo "$itemz: $valuez<br>"; 
  }
}

关于PHP foreach 中提供的参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656969/

相关文章:

php - Web 应用部署最佳实践 : how to manage local & live files?

php - Sphinx 搜索 php - 良好实践

php - 查询未在 php 中运行

php - mySql 查询期间的 Foreach

php - 无法在windows 7 x64 机器上的wamp2.2 上安装apc,wamp 也是x64。请帮助

php - 仅当字段为空时更新

php - 首次尝试使用 PHP/MySQL 进行 OOP

php - 如何优化通过 NOT IN 或 NOT EXISTS 过滤的 MySQL 查询内的性能

php - 如何禁止同一个人像两个不同的人一样玩我的 RPG 游戏?

php - header ('Location:')无法正常工作