Re: Thinking out loud - a continuation...

From: Date: Wed, 21 Mar 2012 19:14:24 +0000
Subject: Re: Thinking out loud - a continuation...
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-317164@lists.php.net to get a copy of this message
On Wed, Mar 21, 2012 at 2:39 PM, Jay Blanchard <jay.blanchard@sigmaphinothing.org> wrote: > ... > I have a project where I have multiple queries and each query uses the results from the > previous query to get it's results. I need to do one of two things, either out put a > multidimensional array that I can use json_encode() on or I have to format the output from the > queries as a JSON string. The resulting JSON will be used by a JavaScript widget and must be formed > correctly. I created the following array by hand: > > $userList = array("John" => array( >                     "email" => "john@demo.com", >                     "website" => "www.john.com", >                     "age" => "22", >                     "password" => "pass", >                     "description" => array( >                        "hair" => "blonde", >                        "eyes" => "blue", >                        "build" => "medium" >                     )), >                  "Anna" => array( >                     "email" => "anna@demo.com", >                     "website" => "www.anna.com", >                     "age" => "24", >                     "password" => "pass", >                     "description" => array( >                        "hair" => "brunette", >                        "eyes" => "hazel", >                        "build" => "petite" >                        ) >                     )); > > I ran it through json_encode() and got the following output > > > {"John":{"email":"john@demo.com","website":"www.john.com","age":"22","password":"pass","description":{"hair":"blonde","eyes":"blue","build":"medium"}},"Anna":{"email":"anna@demo.com","website":"www.anna.com","age":"24","password":"pass","description":{"hair":"brunette","eyes":"hazel","build":"petite"}}} > > jslint.com verifies this as good JSON (although I thought there had to be square brackets > around child arrays). Speaking to your belief that arrays had to have square brackets, json_encode examines the PHP array and only encodes sequential numbers JSON arrays. Others (as in your case) are encoded as object literals: http://php.net/manual/en/function.json-encode.php That said, you can still access Javascript Object properties with array access if you prefer in the client code: http://www.quirksmode.org/js/associative.html > If you were me would you just generate the JSON? If not what is he best way to output an array > that will nest properly for each subsequent query? Because of the options json_encode provides and the flexibility it affords while in PHP, I would generate PHP and then always use json_encode to generate the JSON as needed. Adam -- Nephtali:  A simple, flexible, fast, and security-focused PHP framework http://nephtaliproject.com

« previous php.general (#317164) next »