Tous les cours gratuit

Apprendre à programmer

Fusionner Deux Tableaux en PHP – Exercices corrigés

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
)
Série d’exercices avancés sur la fusion de tableaux en PHP

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 :

tableaux multidimensionnels
<?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);
?>
Fusion avec gestion des clés
<?php
$array1 = array("a" => 1, "b" => 2);
$array2 = array("b" => 3, "c" => 4);
$result = $array1 + $array2;
print_r($result);
?>
gestion des doublons
<?php
$array1 = array("a", "b", "c");
$array2 = array("b", "c", "d");
$result = array_unique(array_merge($array1, $array2));
print_r($result);
?>
Fusion personnalisée
<?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);
?>
Fusion récursive
<?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);
?>
Fusion avec tri
<?php
$array1 = array("banana", "apple", "orange");
$array2 = array("grape", "kiwi", "pineapple");
$result = array_merge($array1, $array2);
sort($result);
print_r($result);
?>
Gestion des valeurs null
<?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);
?>
Fusion avec gestion des clés manquantes
<?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);
?>
Fusion avec validation
<?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);
?>
Fusion de grands ensembles de données
<?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.

Autres articles

Exercices de Programmation Corrigés sur le Microprocesseur...
Le microprocesseur Motorola 6809 est un processeur 8 bits très...
Read more
Programmation ISO (ou G-code) : Guide
La programmation ISO (ou G-code) est un langage standard utilisé...
Read more
Exercices Corrigés Programmation ISO en tournage CNC
Voici une série d'exercices corrigés sur la programmation ISO en...
Read more
AZ

Recent Posts

Guide : Exemple de Commentaire Composé Corrigé

Le commentaire composé est un exercice littéraire qui consiste à analyser un texte en respectant…

6 heures ago

Règles générales pour l’accord des adjectifs masculin/féminin

Les adjectifs liés en français sont les adjectifs qui s’accordent en genre (masculin/féminin) et en…

6 heures ago

Masculins Féminins : Liste des mots piégeux et mots composés

Voici une liste étendue de mots piégeux en français, avec leurs genres et des explications…

7 heures ago

Guide : Reconnaître le Féminin ou le Masculin en Français

Apprendre à distinguer le genre des noms en français peut être un véritable défi pour…

7 heures ago

Fiche Auteur : Montesquieu

1. Informations Générales Nom complet : Charles-Louis de Secondat, Baron de La Brède et de…

7 heures ago

Fiche de Lecture et Citations Clés – L’Art de la Guerre de Nicolas Machiavel

Introduction L’Art de la Guerre (Dell’arte della guerra), publié en 1521, est l’un des ouvrages…

7 heures ago

This website uses cookies.