Explication détaillée de l'utilisation de la fonction array_merge_recursive() de PHP

王林
Libérer: 2023-06-27 11:34:02
original
2202 Les gens l'ont consulté

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.

Utilisation de base

La syntaxe de base de la fonction array_merge_recursive() est la suivante :

array array_merge_recursive(array $array1 [, array $... ])
Copier après la connexion

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);
Copier après la connexion
Copier après la connexion

Le résultat de sortie est le suivant :

Array
(
    [a] => Array
        (
            [0] => b
            [1] => c
            [2] => d
            [3] => e
        )
)
Copier après la connexion
Copier après la connexion

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.

Traitement des noms de clés de tableau

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);
Copier après la connexion

Le résultat du code ci-dessus est le suivant :

Array
(
    [a] => Array
        (
            [0] => apple
            [1] => pear
        )
    [b] => banana
    [c] => cherry
)
Copier après la connexion

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 .

Fusion de tableaux imbriqués

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);
Copier après la connexion
Copier après la connexion

Le résultat du code ci-dessus est le suivant :

Array
(
    [a] => Array
        (
            [0] => b
            [1] => c
            [2] => d
            [3] => e
        )
)
Copier après la connexion
Copier après la connexion

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

Fusion d'objets

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);
Copier après la connexion

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
        )
)
Copier après la connexion

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

Résumé

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal