Join the Stack Overflow Community
Stack Overflow is a community of 6.5 million programmers, just like you, helping each other.
Join them; it only takes a minute:
Sign up

Is it possible to JSON this php array via json_encode? Because this php array is called $data and when i do..

var myJson = <?php echo json_encode($data) ?>;
console.log(myJson);

in javascript, it give me errors. I was wondering if there is a limitation on what sort of php arrays JSON can/cannot do.

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Tanner, C. kickoff 60 yards to the DU5, Butler, L return 14 yards to the DU19 (Johnson, I.).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => GT35
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => K
                        )

                    [drive] => 1
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Renfree, S pass complete to Vernon, C for 6 yards to the DU25 (Thomas, Je.).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU19
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => DU
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => P
                        )

                    [drive] => 2
                )

            [1] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Renfree, S pass incomplete to Scott, D.
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU25
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => DU
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 4
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => P
                        )

                    [drive] => 2
                )

            [2] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Renfree, S pass complete to Scott, D for 6 yards to the DU31, 1ST DOWN DU (Thomas, Je.).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU25
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => DU
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 4
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => P
                        )

                    [drive] => 2
                )

            [3] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Renfree, S pass complete to Scott, D for no gain to the DU31 (Sweeting, R.).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU31
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => DU
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => P
                        )

                    [drive] => 2
                )

            [4] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Renfree, S pass incomplete to Vernon, C.
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU31
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => DU
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => P
                        )

                    [drive] => 2
                )

            [5] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Renfree, S sacked for loss of 4 yards to the DU27 (Gotsis, A.).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU31
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => DU
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => P
                        )

                    [drive] => 2
                )

            [6] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Monday, W punt 53 yards to the GT20, Golden, J. return 8 yards to the GT28 (Reeves, D).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU27
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => DU
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 14
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => U
                        )

                    [drive] => 2
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Smith, O. rush for 8 yards to the GT36 (Brown, Ky).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => GT28
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [1] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Sims, D. rush for 6 yards to the GT42, 1ST DOWN GT (Sink, N).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => GT36
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 2
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [2] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Washington, T. pass incomplete to Smith, O..
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => GT42
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => P
                        )

                    [drive] => 3
                )

            [3] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Washington, T. rush for 2 yards to the GT44 (Anunike, K).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => GT42
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [4] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Greene, J. rush for 6 yards to the 50 yardline (Canty, W).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => GT44
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 8
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [5] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Smith, O. rush for 16 yards to the DU34, 1ST DOWN GT (Canty, W;France, C).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => GT50
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 2
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [6] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Smith, O. rush for 5 yards to the DU29 (France, C).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU34
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [7] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Laskey, Z. rush for 3 yards to the DU26 (France, C).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU29
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 5
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [8] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Washington, T. rush for 3 yards to the DU23, 1ST DOWN GT (France, C).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU26
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 2
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [9] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Washington, T. pass complete to Smith, O. for 21 yards to the DU2, 1ST DOWN GT (Butler, L).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU23
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 10
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => P
                        )

                    [drive] => 3
                )

            [10] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Washington, T. rush for 1 yard to the DU1 (Brown, Ky;Foxx, J).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU02
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 0
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [11] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Washington, T. rush for no gain to the DU1 (Cockrell, R).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU01
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 0
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [12] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Washington, T. rush for 1 yard to the DU0, TOUCHDOWN, clock 06:51.
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU01
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 0
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => R
                        )

                    [drive] => 3
                )

            [13] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Tanner, C. kick attempt good.
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => DU03
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 0
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => X
                        )

                    [drive] => 3
                )

            [14] => Array
                (
                    [text] => SimpleXMLElement Object
                        (
                            [0] => Tanner, C. kickoff 54 yards to the DU11, Butler, L return 23 yards to the DU34 (Harrell, A.).
                        )

                    [spot] => SimpleXMLElement Object
                        (
                            [0] => GT35
                        )

                    [ball] => SimpleXMLElement Object
                        (
                            [0] => GT
                        )

                    [togo] => SimpleXMLElement Object
                        (
                            [0] => 0
                        )

                    [type] => SimpleXMLElement Object
                        (
                            [0] => K
                        )

                    [drive] => 3
                )

        )
)
share|improve this question
    
Can you post the outputted javascript code? – paislee Mar 18 '13 at 23:01
    
You are trying to parse PHP on the client-side (inside the JavaScript parser). That won't work. You need to request the Array by a POST call from PHP page, otherwise it won't work. – user1467267 Mar 18 '13 at 23:02
    
Uncaught SyntaxError: Unexpected token < @ line var myJson = <?php echo json_encode($data) ?>; – ealeon Mar 18 '13 at 23:03
    
@Allendar im sorry I am a bit confused on what you said. could you direct me to a page where it has tutorial? – ealeon Mar 18 '13 at 23:04
    
@Allendar hmm that seems like how it's done when i researched php array to javascript array via json. i guess i need to look our for more options as to go about this. – ealeon Mar 18 '13 at 23:07
up vote 5 down vote accepted

First you need a PHP file on a Apache server somewhere with PHP installed. Make a file like this:

localhost:8888/myfile.php

<?php
    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

    echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5}
?>

Then your JavaScript (in this example I use jQuery):

$.getJSON('http://localhost:8888/myfile.php', function(data) {
    console.log(data);
});

This should be a start to get PHP arrays in to your JavaScript.

share|improve this answer
    
So, in this case, data has my php array? so will i be able to access the array by i.e. data[0][0].text in javascript? – ealeon Mar 18 '13 at 23:18
    
Yes, the PHP file will print out the raw JSON "serialized/encoded" data. The JavaScript (jQuery) will then read the raw string and decode it back into the data Object inside JavaScript. The encoding/decoding works both ways. – user1467267 Mar 18 '13 at 23:21

As @Allendar said you can't embed PHP inside a JS file. You could, however, add a function in your JS file to load the JSON data, and then embed that data in a script tag in your PHP file.

example.js:

var loadJsonFromPHP = function(json) {
    console.log(json);
}

example.php:

<?php
    $data = array("some", "test", "data");
?>
<html>
    <head>
        <script src="example.js"></script>
        <script>
            loadJsonFromPHP(<?php echo json_encode($data) ?>);
        </script>
    </head>
    <body></body>
</html>

Edit: this is assuming you only need to get the data into JS once at page load, in which case you can skip making AJAX requests.

share|improve this answer
    
Yes, but it still requires the file to be a PHP script running on a PHP server. I'm not sure, but it seems ealeon doesn't seem to fathom the idea how it works intertwined. I hope it something works out for him tho :) – user1467267 Mar 18 '13 at 23:15

Passing PHP JSON to Javascript and reading

var stuff = <?php print json_encode($datajson); ?>; var arr = new Array(); arr= JSON.parse(stuff); document.write( arr[0].cust_code );

share|improve this answer

JSON can handle any type of array (albeit it will cast associative arrays as objects). The problem you are probably facing is that you are trying to output with PHP when the data is available only on Javascript.

To clarify: once the page has loaded, PHP cannot do anything. Only javascript can process things on client side, PHP works only on the server and has no knowledge of the state of the client.

share|improve this answer
    
This is a comment, not a solution – user1467267 Mar 18 '13 at 23:06

I've never tried to do something like this but I think that you're having issue because json_encode returns a json encoded string. You then need to decode this string on the javascript side of things. Try something like the following:

var myJson = JSON.parse(<?php echo json_encode($data) ?>);
console.log(myJson);
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.