1

I have a multidimensional array which, when echoed in PHP, looks like this:

{
    "11-12-20":{"visits":0,"pageviews":0}
    "11-12-21":{"visits":0,"pageviews":0}
    "11-12-22":{"visits":0,"pageviews":0}
}// etc.

As you can see, the date is the key to the arrays inside the multidimensional array. So I can select an array from the multidimensional array using the date as the key:

$my_multi_array['12-12-12'];

JSON:

$.getJSON('file.php', function(data){
    var test='11-12-29';
    document.write(data.test);
});

When I test that in a browser, nothing is printed on the screen. Also, how would I go about looping through the whole of that array in jQuery and use the data inside that array's array.

I've been at this for hours now, and am pretty frustrated.

1
  • can down-voter please explain? Commented Dec 26, 2011 at 19:09

2 Answers 2

1

The PHP output that you have echoed is not an array, it's a JSON object without comma separators, which means it's not correctly formed.

If you correct the syntax, you can access the objects in data through the index notation ([]), not the dot operator (.). So instead of accessing data like data.test, you should try data[test].

Assuming you name your JSON object myJson, here's how you can iterate thought it:

var myJson = {
    "11-12-20":{"visits":0,"pageviews":0},
    "11-12-21":{"visits":0,"pageviews":0},
    "11-12-22":{"visits":0,"pageviews":0}
}

for (var item in myJson)
{
    alert(myJson[item].visits + ", " + myJson[item].pageviews);
}
1

Use data[test]. Your data.test is equal to data["test"], and there is no "test" property in your object.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.