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

Lettre Offre Commerciale Professionnelle : 10 Modèles

L’offre commerciale est un élément essentiel dans le développement de toute relation d’affaires. Bien conçue,…

2 heures ago

Comment personnaliser une proposition commerciale ?

Pour qu'une proposition commerciale soit percutante et engageante, elle doit être personnalisée en fonction des…

2 heures ago

Exemples de Proposition Commerciale – Modèle Standard à Suivre

Le contexte d'une proposition commerciale professionnelle est la base qui permet d’établir la pertinence de…

11 heures ago

Réponse Positive à une Proposition d’Embauche : Exemples

Recevoir une proposition d’embauche est toujours un moment gratifiant. C’est l’aboutissement d’un processus souvent long…

11 heures ago

Comment Refuser Poliment une Offre Commerciale ?

10 Modèles de lettres pour Refuser Poliment une Offre Commerciale 👇 Refuser une offre commerciale…

12 heures ago

Feuille de Route Produit : Planification et le Suivi du Développement de Produits

La feuille de route produit est un document stratégique qui guide le développement, le lancement,…

12 heures ago

This website uses cookies.