Lors de la fusion de tableaux PHP, comment fusionner différents types de données ?

王林
Libérer: 2024-04-28 12:06:01
original
409 Les gens l'ont consulté

Pour fusionner des tableaux de différents types de données en PHP, il existe trois méthodes courantes : 1) array_merge_recursive, fusion récursive, conservation des sous-tableaux ; 2) opérateur de propagation de PHP 7.4+, expansion des tableaux ; contrôle.

Lors de la fusion de tableaux PHP, comment fusionner différents types de données ?

Fusion de tableaux PHP entre différents types de données

En PHP, lors de la fusion de tableaux, vous rencontrez souvent des données de différents types de données. Afin de réaliser la fusion parfaite de ces types de données, voici trois méthodes courantes, et fournir des cas pratiques de démonstration.

1. array_merge_recursive

Cette fonction peut fusionner de manière récursive des tableaux et fusionner des sous-tableaux sous forme de tableaux sans perdre les données des sous-tableaux.

<?php
$array1 = ['a' => 1, 'b' => [3, 4], 'c' => ['d' => 6]];
$array2 = ['b' => [1, 2], 'e' => 5];

$mergedArray = array_merge_recursive($array1, $array2);

print_r($mergedArray); // 输出:
// Array
// (
//     [a] => 1
//     [b] => Array
//         (
//             [0] => 3
//             [1] => 4
//             [2] => 1
//             [3] => 2
//         )
//     [c] => Array
//         (
//             [d] => 6
//         )
//     [e] => 5
// )
?>
Copier après la connexion

2. opérateur spread (PHP 7.4+)

PHP 7.4 a introduit l'opérateur spread, qui permet de répartir un tableau dans un autre tableau.

<?php
$array1 = ['a' => 1, 'b' => [3, 4]];
$array2 = ['b' => [1, 2], 'e' => 5];

$mergedArray = [...$array1, ...$array2];

print_r($mergedArray); // 输出:
// Array
// (
//     [0] => 1
//     [1] => 3
//     [2] => 4
//     [3] => 1
//     [4] => 2
//     [5] => 5
// )
?>
Copier après la connexion

3. Fonction de fusion personnalisée

Si vous avez besoin d'un contrôle plus précis sur le processus de fusion, vous pouvez écrire une fonction de fusion personnalisée.

<?php
function custom_array_merge(array $array1, array $array2): array
{
    foreach ($array2 as $key => $value) {
        if (isset($array1[$key]) && is_array($array1[$key]) && is_array($value)) {
            $array1[$key] = custom_array_merge($array1[$key], $value);
        } else {
            $array1[$key] = $value;
        }
    }

    return $array1;
}

$array1 = ['a' => 1, 'b' => [3, 4], 'c' => ['d' => 6]];
$array2 = ['b' => [1, 2], 'e' => 5];

$mergedArray = custom_array_merge($array1, $array2);

print_r($mergedArray); // 输出:
// Array
// (
//     [a] => 1
//     [b] => Array
//         (
//             [0] => 3
//             [1] => 4
//             [2] => 1
//             [3] => 2
//         )
//     [c] => Array
//         (
//             [d] => 6
//         )
//     [e] => 5
// )
?>
Copier après la connexion

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