Edit report at http://bugs.php.net/bug.php?id=54140&edit=1
ID: 54140 User updated by: forjest at gmail dot com Reported by: forjest at gmail dot com Summary: array_merge() break keys during merge Status: Open Type: Bug Package: Arrays related -Operating System: +Operating System: *Nix PHP Version: 5.3.5 Block user comment: N Private report: N New Comment: Works as expected on Windows platform. Previous Comments: ------------------------------------------------------------------------ [2011-03-02 18:21:06] forjest at gmail dot com Description: ------------ array_merge interprets string keys, containing only digits as numeric keys, if numeric overflow not reached. String keys should works as strings regarless of their contents. Test script: --------------- var_dump(array_merge(array('t777'=> array("I'm a string")))); var_dump(array_merge(array("42424242"=> array("I'm a string of digits")))); var_dump(array_merge(array("777777777777777777777777777777777777777777777777777777777"=> array("I'm string of digits too")))); var_dump(is_string("42424242")); var_dump(is_string(42424242)); var_dump(is_string("777777777777777777777777777777777777777777777777777777777")); Expected result: ---------------- array(1) { ["t777"]=> array(1) { [0]=> string(12) "I'm a string" } } array(1) { ["42424242"]=> array(1) { [0]=> string(22) "I'm a string of digits" } } array(1) { ["777777777777777777777777777777777777777777777777777777777"]=> array(1) { [0]=> string(24) "I'm string of digits too" } } bool(true) bool(false) bool(true) Actual result: -------------- array(1) { ["t777"]=> array(1) { [0]=> string(12) "I'm a string" } } array(1) { [0]=> array(1) { [0]=> string(22) "I'm a string of digits" } } array(1) { ["777777777777777777777777777777777777777777777777777777777"]=> array(1) { [0]=> string(24) "I'm string of digits too" } } bool(true) bool(false) bool(true) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=54140&edit=1