Page 1 sur 1

Bug sur array_merge_recursive php 5.4.4 ?

Posté : 14 janv. 2015, 17:17
par kalvin
Bonjour à tous,

Une question à propos du fonctionnement de la fonction "array_merge_recursive"

Soit le script suivant :

Code : Tout sélectionner

<?php $a = array( 'a' => array( 'b' => array( 'c' => array( ) ) ) ); $b = array( 'a' => array( 'b' => array( 'd' => array( ) ) ) ); $c = array_merge_recursive($a, $b); print_r($c);
On obtient alors le tableau suivant :

Code : Tout sélectionner

Array ( [a] => Array ( [b] => Array ( [c] => Array ( ) [d] => Array ( ) ) ) )
Ici pas de problème on retrouve bien nos deux clés "c" et "d" sous la clé "b".
En remplacant maintenant cette clé "b" par une clé "3" dans nos deux tableaux $a et $b on à donc le code suivant :

Code : Tout sélectionner

<?php $a = array( 'a' => array( '3' => array( 'c' => array( ) ) ) ); $b = array( 'a' => array( '3' => array( 'd' => array( ) ) ) ); $c = array_merge_recursive($a, $b); print_r($c);

On obtient alors le tableau suivant :

Code : Tout sélectionner

Array ( [a] => Array ( [3] => Array ( [c] => Array ( ) ) [4] => Array ( [d] => Array ( ) ) ) )
Cette fois les clés "c" et "d" ne se retrouve pas sous la même clé "3" ...
Est ce le comportement attendu ?

Merci d'avance pour vos réponses.

Re: Bug sur array_merge_recursive php 5.4.4 ?

Posté : 14 janv. 2015, 20:23
par xTG
Si je comprends la documentation c'est normal :
Cependant, si deux tableaux ont la même clé numérique, la dernière valeur n'écrasera pas la précédente, mais sera ajoutée à la fin du tableau.

Re: Bug sur array_merge_recursive php 5.4.4 ?

Posté : 15 janv. 2015, 14:28
par kalvin
Aie,

Merci beaucoup ! Et désolé pour le post inutile, cette phrase m'avait échappée ...

Si quelqu'un peut passer le post en résolu.

Plus qu'à trouver une fonction qui n’incrémente pas les clés numériques.

Merci encore.