Edit report at http://bugs.php.net/bug.php?id=53130&edit=1

 ID:                 53130
 Updated by:         [email protected]
 Reported by:        manchokapitancho at gmail dot com
 Summary:            JSON decoded arrays have broken integer keys
-Status:             Open
+Status:             Bogus
 Type:               Bug
-Package:            Arrays related
+Package:            JSON related
 PHP Version:        5.3.3
 Block user comment: N

 New Comment:

Besides being invalid JSON, that's an object rather than an array.
Object property names generally follow the same rules as variable names,
but can be accessed via braced literals like so:



<?php

$obj = json_decode ('{ "3" : "4", "text" : "5" }');

var_dump($obj->{3});       // outputs string(1) "4"

var_dump($obj->{'3'});     // outputs string(1) "4"

?>



Not a bug; closing.


Previous Comments:
------------------------------------------------------------------------
[2010-10-21 14:50:03] manchokapitancho at gmail dot com

Description:
------------
JSON decoded arrays have their integer keys broken. They are present in
the array 

but they can be neither accessed nor found through array_key_exists.

Test script:
---------------
$obj = json_decode ('{ "3" : "4", "text" : "5" }');

var_dump ($obj);

$arr = (array)$obj;

var_dump ($arr);

var_dump ($arr[3]);

var_dump ($arr["text"]);

var_dump (array_key_exists (3, $arr));

var_dump (array_key_exists ("text", $arr));



Expected result:
----------------
object(stdClass)#10 (2) { ["3"]=> string(1) "4" ["text"]=> string(1) "5"
}

array(2) { ["3"]=> string(1) "4" ["text"]=> string(1) "5" }

string(1) "4"

string(1) "5"

bool(true)

bool(true)



Actual result:
--------------
object(stdClass)#10 (2) { ["3"]=> string(1) "4" ["text"]=> string(1) "5"
}

array(2) { ["3"]=> string(1) "4" ["text"]=> string(1) "5" }

NULL

string(1) "5"

bool(false)

bool(true)




------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53130&edit=1

Reply via email to