[ create a new paste ] login | about

Link: http://codepad.org/TadroYeM    [ raw code | output | fork ]

PHP, pasted on Aug 13:
<?php

  // This converts correctly
  $arr = array(
    0 => (object) array('id'=>1,'key'=>'value'),
    1 => (object) array('id'=>2,'key'=>'value'),
    2 => (object) array('id'=>3,'key'=>'value')
  );
  var_dump(json_encode($arr));
  // string(70) "[{"id":1,"key":"value"},{"id":2,"key":"value"},{"id":3,"key":"value"}]"

  // This does not, because the indexes don't start from 0
  $arr = array(
    1 => (object) array('id'=>1,'key'=>'value'),
    2 => (object) array('id'=>2,'key'=>'value'),
    3 => (object) array('id'=>3,'key'=>'value')
  );
  var_dump(json_encode($arr));
  // string(82) "{"1":{"id":1,"key":"value"},"2":{"id":2,"key":"value"},"3":{"id":3,"key":"value"}}"

  // Neither does this, because the indexes are not contiguous
  $arr = array(
    0 => (object) array('id'=>1,'key'=>'value'),
    1 => (object) array('id'=>2,'key'=>'value'),
    3 => (object) array('id'=>3,'key'=>'value')
  );
  var_dump(json_encode($arr));
  // string(82) "{"0":{"id":1,"key":"value"},"1":{"id":2,"key":"value"},"3":{"id":3,"key":"value"}}"

  // But this does work. Apparently key type is not an issue.
  $arr = array(
    '0' => (object) array('id'=>1,'key'=>'value'),
    '1' => (object) array('id'=>2,'key'=>'value'),
    '2' => (object) array('id'=>3,'key'=>'value')
  );
  var_dump(json_encode($arr));
  // string(70) "[{"id":1,"key":"value"},{"id":2,"key":"value"},{"id":3,"key":"value"}]"


Output:
1
2
3
4
string(70) "[{"id":1,"key":"value"},{"id":2,"key":"value"},{"id":3,"key":"value"}]"
string(82) "{"1":{"id":1,"key":"value"},"2":{"id":2,"key":"value"},"3":{"id":3,"key":"value"}}"
string(82) "{"0":{"id":1,"key":"value"},"1":{"id":2,"key":"value"},"3":{"id":3,"key":"value"}}"
string(70) "[{"id":1,"key":"value"},{"id":2,"key":"value"},{"id":3,"key":"value"}]"


Create a new paste based on this one


Comments: