Maison >développement back-end >tutoriel php >Lors de la fusion de tableaux PHP, comment fusionner différents types de données ?

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

王林
王林original
2024-04-28 12:06:01436parcourir

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
// )
?>

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
// )
?>

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
// )
?>

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!

Déclaration:
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