PHP 数组迭代问题


PHP array iteration issues

嘿,所以我有这个数组,叫做$files(var_dump()ed):

array(2) {
  [0]=>
  array(1) {
    ["_c"]=>
    array(2) {
      ["title"]=>
      array(1) {
        ["_v"]=>
        string(9) "blueprint"
      }
      ["src"]=>
      array(1) {
        ["_v"]=>
        string(20) "blueprint/screen.css"
      }
    }
  }
  [1]=>
  array(1) {
    ["_c"]=>
    array(2) {
      ["title"]=>
      array(1) {
        ["_v"]=>
        string(7) "general"
      }
      ["src"]=>
      array(1) {
        ["_v"]=>
        string(11) "general.css"
      }
    }
  }
}

但是当我:

foreach($files as $file){
    // etc.
}

我得到一个Invalid argument supplied for foreach()

有什么想法吗?谢谢。

啊。我明白你在做什么。您非常正确,对于 css 密钥,您将获得file标签,因此是一个有效的数组:

    <css>
        <file>
            <title>blueprint</title>
            <src>blueprint/screen.css</src>
        </file>
        <file>
            <title>general</title>
            <src>general.css</src>
        </file>
    </css>

但是当js键出现时呢?

    <js>
    </js>

果然,没有file键,没有数组,PHP窒息。

你可能想扔一个

if (!isset($files['file'])) continue;

在那里。