|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2008-08-31 13:52 UTC] manchokapitancho at gmail dot com
Description:
------------
Object to array conversion leads to weird behaviour - access to array members is not possible.
Reproduce code:
---------------
$input = json_decode ('{"is_paid":{"0":"4","1":"3"},"is_bank_transfer":{"4":"1"}}');
$arr = ((array)$input->is_bank_transfer);
var_dump($arr);
var_dump($arr[4]);
var_dump($arr['4']);
$keys = array_keys ($arr);
var_dump($keys);
var_dump($arr[$keys[0]]);
Expected result:
----------------
array(1) {
["4"]=>
string(1) "1"
}
string(1) "1"
string(1) "1"
array(1) {
[0]=>
string(1) "4"
}
string(1) "1"
Actual result:
--------------
array(1) {
["4"]=>
string(1) "1"
}
NULL
NULL
array(1) {
[0]=>
string(1) "4"
}
NULL
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 07:00:01 2025 UTC |
You could always use the 'assoc' parameter on the json_decode() function to avoid this completely: $input = json_decode('{"is_paid":{"0":"4","1":"3"},"is_bank_transfer":{"4":"1"}}', true); $arr = $input['is_bank_transfer']; var_dump($arr); var_dump($arr[4]); var_dump($arr['4']); $keys = array_keys ($arr); var_dump($keys); var_dump($arr[$keys[0]]); :)