Re: Bug #12480 Updated: array_merge_recursive() clobbers existing numeric keys

From: Date: Mon, 06 Aug 2001 17:22:09 +0000
Subject: Re: Bug #12480 Updated: array_merge_recursive() clobbers existing numeric keys
References: 1 2  Groups: php.dev 
Request: Send a blank email to php-dev+get-62323@lists.php.net to get a copy of this message
On Aug 06, Bug Database wrote:
> ID: 12480
> Updated by: andrei
> Reported By: pgl@instinct.org
> Old Status: Open
> Status: Closed
> Bug Type: Arrays related
> Operating System: FreeBSD
> PHP Version: 4.0.6
> New Comment:
> 
> array_merge* functions are not meant to preserve numeric keys.

uhm, forgive me for being stupid, but why not? I was trying to use
numeric keys to store the id of db records that didn't start at 0.
using array_merge_recursive destroyed this information, so I have
to store it in the array itself, which in turn means I can't do stuff
like "if ($records[$id]['someval'])", or ksort on $records, or do
"foreach ($records as $id => $values)" and other nice things like
that after I've used array_merge_recursive.

and do you think, perhaps, it might be worth noting this in the man
pages?

regards,

peter lowe.

> 
> Previous Comments:
> ------------------------------------------------------------------------
> 
> [2001-07-31 05:14:43] pgl@instinct.org
> 
> if any of the keys of the first level of arrays are
> numeric, using array_merge_recursive() will renumber
> them to start at 0. this destroys keys that are used
> to record id numbers, etc.
> 
> [mini:pgl]:~/public_html $ cat test.php 
> #!/usr/local/bin/php -q
> <?
> $b[a][4] = 1;
> $a[3][4] = 2;
> print_r(array_merge_recursive($a, $b));
> ?>
> 
> [mini:pgl]:~/public_html $ ./test.php 
> Array
> (
>     [0] => Array
>         (
>             [4] => 2
>         )
> 
>     [a] => Array
>         (
>             [4] => 1
>         )
> )
> 
> 
> ------------------------------------------------------------------------
> 
> 
> 
> ATTENTION! Do NOT reply to this email!
> To reply, use the web interface found at http://bugs.php.net/?id=12480&edit=2

-- 
This is not the signature you are looking for. Move along.


Thread (8 messages)

« previous php.dev (#62323) next »