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.
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!