Bug sur array_merge_recursive php 5.4.4 ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Bug sur array_merge_recursive php 5.4.4 ?

Re: Bug sur array_merge_recursive php 5.4.4 ?

par kalvin » 15 janv. 2015, 14:28

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.

Re: Bug sur array_merge_recursive php 5.4.4 ?

par xTG » 14 janv. 2015, 20:23

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.

Bug sur array_merge_recursive php 5.4.4 ?

par kalvin » 14 janv. 2015, 17:17

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.