json_encode() - PHP Associative Array to JSON Object

Q

How to convert PHP Associative Arrays to JSON Objects using the json_encode() function?

✍: FYIcenter.com

A

Actually in PHP, all arrays are associative arrays.

If you create an array with regular array syntax and functions, PHP actually stores it as an associative array with the index number assigned to each elements as their keys.

We normally differentiate a regular array from an associative array by looking their keys:

  • Regular Array - Keys are sequential numbers of 0, 1, 2, ....
  • Associative Array - Keys are not sequential numbers of 0, 1, 2, ....

When an array is processed by the json_encode() function, it will automatically detect the type of the array, and:

  • Converts a regular array to a JSON Array.
  • Converts an associative array to a JSON Object.

Here is a PHP example that shows you how to arrays are converted by json_decode():

<?php
# json_encode_associative_array.php
# Copyright (c) FYIcenter.com 

   $var = array(
      "0"=>"dev.fyicenter.com",
      "1"=>array("0"=>"PHP","1"=>"JSON")
      );

   print("\nInput: ");
   var_dump($var);
   print("Output: ".json_encode($var)."\n");

   $var = array(
      "site"=>"dev.fyicenter.com",
      "topics"=>array("PHP"=>"Y","JSON"=>"Y")
      );

   print("\nInput: ");
   var_dump($var);
   print("Output: ".json_encode($var)."\n");
?>

If you run the above PHP code through the PHP engine, you get the following output:

>\fyicenter\php\php.exe json_encode_sociative_array.php

Input: array(2) {
  [0]=>
  string(17) "dev.fyicenter.com"
  [1]=>
  array(2) {
    [0]=>
    string(3) "PHP"
    [1]=>
    string(4) "JSON"
  }
}
Output: ["dev.fyicenter.com",["PHP","JSON"]]

Input: array(2) {
  ["site"]=>
  string(17) "dev.fyicenter.com"
  ["topics"]=>
  array(2) {
    ["PHP"]=>
    string(1) "Y"
    ["JSON"]=>
    string(1) "Y"
  }
}
Output: {"site":"dev.fyicenter.com","topics":{"PHP":"Y","JSON":"Y"}}

 

Using JSON in PHP

⇒⇒JSON Tutorials

2017-08-16, 114👍, 0💬