Maison >développement back-end >tutoriel php >Explication détaillée de l'utilisation de la fonction array_merge_recursive() de PHP
PHP est un langage de script open source côté serveur largement utilisé. Si vous êtes débutant en PHP, vous connaissez peut-être déjà la syntaxe de base de l'utilisation des tableaux. Dans de nombreux cas, il est très nécessaire de traiter les tableaux et de les fusionner, c'est pourquoi PHP fournit une fonction array_merge_recursive(). La fonction
array_merge_recursive() est l'une des fonctions intégrées de PHP, utilisée pour fusionner un ou plusieurs tableaux. Cette fonction fusionnera les éléments de tous les tableaux, y compris les tableaux imbriqués. Cette fonction se comporte légèrement différemment lors de la fusion de deux ou plusieurs tableaux entre eux. Cet article vous présentera l'utilisation détaillée de la fonction array_merge_recursive() en PHP.
La syntaxe de base de la fonction array_merge_recursive() est la suivante :
array array_merge_recursive(array $array1 [, array $... ])
Le paramètre $array1 est le premier tableau à fusionner, et le paramètre $... correspond aux autres tableaux à fusionner, ce qui peut être n’importe quel tableau de nombres. Cette fonction renvoie le résultat combiné de plusieurs tableaux. Voici un exemple simple :
$array1 = array('a' => array('b', 'c')); $array2 = array('a' => array('d', 'e')); $result = array_merge_recursive($array1, $array2); print_r($result);
Le résultat de sortie est le suivant :
Array ( [a] => Array ( [0] => b [1] => c [2] => d [3] => e ) )
Vous pouvez voir que lorsque nous fusionnons les tableaux $array1 et $array2, les tableaux 'b' et 'c' sous 'a' sont fusionnés dans le résultat, les tableaux « d » et « e » sous « a » sont également fusionnés dans le résultat.
Lors de l'utilisation de la fonction array_merge_recursive(), si les tableaux à fusionner ont les mêmes noms de clés de chaîne, les éléments de ces tableaux seront fusionnés en un seul tableau.
$array1 = array('a' => 'apple', 'b' => 'banana'); $array2 = array('a' => 'pear', 'c' => 'cherry'); $result = array_merge_recursive($array1, $array2); print_r($result);
Le résultat du code ci-dessus est le suivant :
Array ( [a] => Array ( [0] => apple [1] => pear ) [b] => banana [c] => cherry )
Vous pouvez voir que puisque les tableaux $array1 et $array2 ont tous deux le nom de clé 'a', dans le résultat, les tableaux sous 'a' contiennent leurs valeurs .
La fonction array_merge_recursive() peut gérer correctement la fusion de tableaux imbriqués. Lorsque les éléments du tableau à fusionner sont des tableaux, cette fonction fusionnera les tableaux de manière récursive. Par exemple :
$array1 = array('a' => array('b', 'c')); $array2 = array('a' => array('d', 'e')); $result = array_merge_recursive($array1, $array2); print_r($result);
Le résultat du code ci-dessus est le suivant :
Array ( [a] => Array ( [0] => b [1] => c [2] => d [3] => e ) )
Vous pouvez voir que lors de la fusion des tableaux $array1 et $array2, les deux tableaux contiennent une clé 'a' et un tableau à ce moment, array_merge_recursive(. ) fusionnera récursivement les deux tableaux et les fusionnera dans un nouveau tableau sous la clé « a ». La fonction
array_merge_recursive() peut également être utilisée pour fusionner des objets. Lors de la fusion d'objets, cette fonction préférera fusionner les propriétés de ces objets plutôt que les instances d'objet.
class Fruit { public $name; public $color; public function __construct($name, $color) { $this->name = $name; $this->color = $color; } } $apple = new Fruit('apple', 'red'); $banana = new Fruit('banana', 'yellow'); $pear = new Fruit('pear', 'green'); $result = array_merge_recursive((array)$apple, (array)$banana, (array)$pear); print_r($result);
Le code ci-dessus créera trois objets Fruit différents et les convertira en tableaux, puis les fusionnera à l'aide de la fonction array_merge_recursive().
Le résultat de sortie est le suivant :
Array ( [name] => Array ( [0] => apple [1] => banana [2] => pear ) [color] => Array ( [0] => red [1] => yellow [2] => green ) )
Vous pouvez voir que dans le tableau de résultats, les propriétés de tous les objets sont fusionnées dans des tableaux. La fonction
array_merge_recursive() est une fonction largement utilisée en PHP. Il peut être utilisé pour fusionner un ou plusieurs tableaux, y compris des tableaux et des objets imbriqués. La plus grande caractéristique de cette fonction est qu'elle peut fusionner des tableaux imbriqués de manière récursive. Lorsque vous utilisez cette fonction, vous devez faire attention à la gestion des noms de clés de tableau pour éviter les erreurs inutiles. N'oubliez pas d'utiliser cette fonction selon vos besoins pendant le développement réel pour éviter les opérations de fusion excessives qui affectent l'efficacité de l'exécution du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!