La fusion de deux tableaux est une opération courante en programmation, et elle est souvent utilisée pour combiner des données provenant de différentes sources. En PHP, fusionner deux tableaux peut être réalisé de plusieurs façons, en fonction des besoins spécifiques de l’application. Dans cet article, nous explorerons différentes méthodes pour fusionner deux tableaux en PHP, et nous fournirons des exemples détaillés avec des exercices corrigés pour illustrer chaque approche.
Méthode 1 : Utilisation de la fonction array_merge()
La fonction array_merge() est l’une des méthodes les plus simples pour fusionner deux tableaux en PHP. Elle prend deux ou plusieurs tableaux en entrée et retourne un nouveau tableau contenant tous les éléments des tableaux d’entrée.
Exemple d’utilisation de la fonction array_merge() :
<?php
$array1 = array("a", "b", "c");
$array2 = array(1, 2, 3);
$result = array_merge($array1, $array2);
print_r($result);
?>
Résultat :
Array
(
[0] => a
[1] => b
[2] => c
[3] => 1
[4] => 2
[5] => 3
)
Exercice 1 :
Fusionnez les deux tableaux suivants en utilisant la fonction array_merge() :
$array1 = array("apple", "banana", "orange");
$array2 = array("pear", "grape", "kiwi");
Correction de l’exercice 1 :
<?php
$array1 = array("apple", "banana", "orange");
$array2 = array("pear", "grape", "kiwi");
$result = array_merge($array1, $array2);
print_r($result);
?>
Résultat :
Array
(
[0] => apple
[1] => banana
[2] => orange
[3] => pear
[4] => grape
[5] => kiwi
)
Méthode 2 : Utilisation de l’opérateur de fusion (PHP 7.4 et versions ultérieures)
À partir de PHP 7.4, l’opérateur de fusion (??) peut être utilisé pour fusionner deux tableaux. Cet opérateur renvoie le premier opérande s’il n’est pas null, sinon il renvoie le second opérande.
Exemple d’utilisation de l’opérateur de fusion :
<?php
$array1 = ["a" => 1, "b" => 2];
$array2 = ["b" => 3, "c" => 4];
$result = $array1 + $array2;
print_r($result);
?>
Résultat :
Array
(
[a] => 1
[b] => 2
[c] => 4
)
Exercice 2 :
Fusionnez les deux tableaux suivants en utilisant l’opérateur de fusion :
$array1 = ["red" => "apple", "yellow" => "banana"];
$array2 = ["yellow" => "lemon", "green" => "lime"];
Correction de l’exercice 2 :
<?php
$array1 = ["red" => "apple", "yellow" => "banana"];
$array2 = ["yellow" => "lemon", "green" => "lime"];
$result = $array1 + $array2;
print_r($result);
?>
Résultat :
Array
(
[red] => apple
[yellow] => banana
[green] => lime
)
Exercice 1 : Fusion de tableaux multidimensionnels
Créez deux tableaux multidimensionnels et fusionnez-les en utilisant la fonction array_merge_recursive().
2 : Fusion avec gestion des clés
Fusionnez deux tableaux en préservant les clés existantes et en combinant les valeurs des clés communes.
Exercice 3 : Fusion avec gestion des doublons
Fusionnez deux tableaux en éliminant les doublons et en conservant une seule occurrence de chaque valeur.
4 : Fusion personnalisée
Implémentez une fonction personnalisée pour fusionner deux tableaux en appliquant une logique de fusion spécifique, par exemple en concaténant les chaînes de caractères ou en additionnant les nombres.
Exercice 5 : Fusion récursive
Écrivez une fonction récursive pour fusionner deux tableaux de manière à ce que les tableaux imbriqués soient également fusionnés de manière récursive.
6 : Fusion avec tri
Fusionnez deux tableaux en les triant par ordre alphabétique ou numérique après la fusion.
Exercice 7 : Gestion des valeurs null
Fusionnez deux tableaux en remplaçant les valeurs null par les valeurs correspondantes du deuxième tableau, s’ils existent.
8 : Fusion avec gestion des clés manquantes
Fusionnez deux tableaux en ajoutant les clés manquantes du deuxième tableau au premier tableau.
Exercice 9 : Fusion avec validation
Écrivez une fonction de fusion qui vérifie si les types de données des valeurs sont compatibles avant de les fusionner.
10 : Fusion de grands ensembles de données
Générez deux grands ensembles de données aléatoires et mesurez les performances de différentes méthodes de fusion pour déterminer la plus efficace.
Ces exercices devraient vous aider à approfondir vos connaissances sur la fusion de tableaux en PHP et à développer vos compétences en résolution de problèmes.
Voici des solutions pour chaque exercice :
<?php
$array1 = array(
"fruit" => array("apple", "banana"),
"color" => "red"
);
$array2 = array(
"fruit" => array("orange", "grape"),
"color" => "green"
);
$result = array_merge_recursive($array1, $array2);
print_r($result);
?>
<?php
$array1 = array("a" => 1, "b" => 2);
$array2 = array("b" => 3, "c" => 4);
$result = $array1 + $array2;
print_r($result);
?>
<?php
$array1 = array("a", "b", "c");
$array2 = array("b", "c", "d");
$result = array_unique(array_merge($array1, $array2));
print_r($result);
?>
<?php
function customMerge($arr1, $arr2) {
$result = array();
foreach($arr1 as $key => $value) {
if (isset($arr2[$key])) {
$result[$key] = $value . $arr2[$key];
} else {
$result[$key] = $value;
}
}
return $result + $arr2;
}
$array1 = array("a" => "Hello", "b" => "World");
$array2 = array("b" => " PHP", "c" => "!");
$result = customMerge($array1, $array2);
print_r($result);
?>
<?php
function recursiveMerge($arr1, $arr2) {
foreach ($arr2 as $key => $value) {
if (is_array($value) && isset($arr1[$key]) && is_array($arr1[$key])) {
$arr1[$key] = recursiveMerge($arr1[$key], $value);
} else {
$arr1[$key] = $value;
}
}
return $arr1;
}
$array1 = array("a" => array("x" => 1, "y" => 2), "b" => 3);
$array2 = array("a" => array("y" => 3, "z" => 4), "c" => 5);
$result = recursiveMerge($array1, $array2);
print_r($result);
?>
<?php
$array1 = array("banana", "apple", "orange");
$array2 = array("grape", "kiwi", "pineapple");
$result = array_merge($array1, $array2);
sort($result);
print_r($result);
?>
<?php
$array1 = array("a" => 1, "b" => null, "c" => 3);
$array2 = array("b" => 2, "d" => 4);
foreach ($array2 as $key => $value) {
if (is_null($array1[$key])) {
$array1[$key] = $value;
}
}
print_r($array1);
?>
<?php
$array1 = array("a" => 1, "b" => 2);
$array2 = array("b" => 3, "c" => 4);
$result = array_merge($array1, array_diff_key($array2, $array1));
print_r($result);
?>
<?php
function validatedMerge($arr1, $arr2) {
$result = array();
foreach ($arr1 as $key => $value) {
if (isset($arr2[$key]) && gettype($value) === gettype($arr2[$key])) {
$result[$key] = $value . $arr2[$key];
} else {
$result[$key] = $value;
}
}
return $result + $arr2;
}
$array1 = array("a" => "Hello", "b" => "World");
$array2 = array("b" => " PHP", "c" => 2024);
$result = validatedMerge($array1, $array2);
print_r($result);
?>
<?php
// Génération de grands ensembles de données aléatoires
$array1 = array();
$array2 = array();
for ($i = 0; $i < 10000; $i++) {
$array1[] = mt_rand(1, 10000);
$array2[] = mt_rand(1, 10000);
}
// Mesure de performances
$start = microtime(true);
$result = array_merge($array1, $array2);
sort($result);
$end = microtime(true);
echo "Temps d'exécution avec array_merge et tri : " . ($end - $start) . " secondes\n";
$start = microtime(true);
$result = $array1 + $array2;
sort($result);
$end = microtime(true);
echo "Temps d'exécution avec l'opérateur de fusion et tri : " . ($end - $start) . " secondes\n";
?>
Ces solutions devraient vous aider à résoudre les exercices avancés sur la fusion de tableaux en PHP. N’hésitez pas à les tester et à les adapter selon vos besoins spécifiques.
Le commentaire composé est un exercice littéraire qui consiste à analyser un texte en respectant…
Les adjectifs liés en français sont les adjectifs qui s’accordent en genre (masculin/féminin) et en…
Voici une liste étendue de mots piégeux en français, avec leurs genres et des explications…
Apprendre à distinguer le genre des noms en français peut être un véritable défi pour…
1. Informations Générales Nom complet : Charles-Louis de Secondat, Baron de La Brède et de…
Introduction L’Art de la Guerre (Dell’arte della guerra), publié en 1521, est l’un des ouvrages…
This website uses cookies.