2

对不起,如果我的标题很难理解。让我解释。

要使用我的结构的这个例子:

Array
(
[2] => Array
    (
        [0] => stdClass Object
            (
                [category_id] => 2
                [category_name] => women
                [project_id] => 1
                [project_name] => Balloons
            )

    )

[1] => Array
    (
        [0] => stdClass Object
            (
                [category_id] => 1
                [category_name] => men
                [project_id] => 2
                [project_name] => Cars
            )

        [1] => stdClass Object
            (
                [category_id] => 1
                [category_name] => men
                [project_id] => 3
                [project_name] => Houses
            )

    )

然后,一旦我有了它,我就将它发送给 javascript 进行评估(这是成功的)。Console.log 实际上确实表明我的 eval'd json 现在实际上是一个对象。

现在,如果我使用 console.log(myArray[2]),它会将其显示为包含另一个数组的数组。这也是正确的

但是!..如果我尝试这样做:

for (item in myArray[2]) {
...
}

或这个:

newVar = myArray[2]
for (item in newVar) {
...
}

“项目”不包含应有的数组。它包含一个等于子数组键的字符串。在这种情况下是“0”

我在这里想念什么?:(

谢谢您的帮助!

4

1 回答 1

3

您已经说过问题出在哪里:“item”不包含数组......它包含一个等于子数组键的字符串。因此,您只需要使用该密钥:

var subarray;
for (var i in myArray) {
    subarray = myArray[i];
    for (var j in subarray) {
        ... // do stuff with subarray[j]
    }
}
于 2009-12-23T16:56:45.210 回答