Apprendre à programmer

La fonction in_array() en PHP – Exercices Corrigés

Cet article explore des exercices corrigés de la fonction in_array() en PHP👇

Introduction à la fonction in_array() en PHP

La fonction in_array() en PHP est utilisée pour vérifier si une valeur spécifique existe dans un tableau. Elle est souvent employée pour effectuer des vérifications conditionnelles dans les données stockées sous forme de tableaux.

Syntaxe :

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
  • $needle : la valeur recherchée dans le tableau.
  • $haystack : le tableau dans lequel la recherche est effectuée.
  • $strict : Si ce paramètre est défini à TRUE, alors in_array() vérifiera également que les types de la valeur $needle et des éléments du tableau $haystack correspondent.
Exemples de base

Avant de passer aux exercices, examinons quelques exemples simples :

Exemple 1 : Recherche simple

$fruits = ["apple", "banana", "cherry"];
if (in_array("banana", $fruits)) {
    echo "Banana is found!";
}

Cet exemple affiche “Banana is found!” puisque “banana” est présent dans le tableau.

Exemple 2 : Recherche avec strict

$numbers = [1, 2, "3", 4];
if (in_array("3", $numbers, true)) {
    echo "String '3' is found!";
} else {
    echo "String '3' is not found!";
}

Cet exemple affiche “String ‘3’ is not found!” car bien que ‘3’ soit présent, il est sous forme de chaîne et la recherche est stricte sur le type.

Exercices corrigés

Exercice 1 : Trouver un élément dans un tableau multidimensionnel

Considérons le tableau suivant :

$products = [
    ["name" => "laptop", "price" => 800],
    ["name" => "phone", "price" => 300]
];

Question : Vérifiez si un produit nommé “phone” existe dans le tableau.

Solution :

$found = false;
foreach ($products as $product) {
    if (in_array("phone", $product)) {
        $found = true;
        break;
    }
}
echo $found ? "Phone is found!" : "Phone is not found!";

Exercice 2 : Sensibilité à la casse

Question : Recherchez “PHONE” dans le tableau ["phone", "laptop"], sans tenir compte de la casse.

Solution :

$items = ["phone", "laptop"];
$search = "PHONE";
$found = false;

foreach ($items as $item) {
    if (strtolower($search) == strtolower($item)) {
        $found = true;
        break;
    }
}
echo $found ? "PHONE is found!" : "PHONE is not found!";

Voici une série d’exercices en PHP axée autour de la gestion des couleurs avec la fonction in_array(). Ces exercices vont permettre de renforcer la compréhension de cette fonction en utilisant des situations concrètes et courantes en programmation.

Exercice 1 : Vérification de Couleur Simple

Énoncé :
Vous avez un tableau de couleurs ["red", "blue", "green", "yellow"]. Vérifiez si la couleur “blue” est présente dans le tableau.

Code à compléter :

$colors = ["red", "blue", "green", "yellow"];

// Ajoutez votre code ici
Exercice 2 : Ajout Conditionnel de Couleurs

Énoncé :
À partir du tableau ["red", "blue", "green"], demandez à l’utilisateur d’entrer une couleur. Ajoutez cette couleur au tableau uniquement si elle n’est pas déjà présente. Affichez le tableau final.

Code à compléter :

$colors = ["red", "blue", "green"];
$newColor = readline("Enter a new color: ");

// Ajoutez votre code ici
Exercice 3 : Fusion de Tableaux avec Contrôle de Doublons

Énoncé :
Vous avez deux tableaux, ["red", "green", "blue"] et ["yellow", "green", "pink"]. Fusionnez ces deux tableaux en un seul mais assurez-vous qu’il n’y ait pas de doublons.

Code à compléter :

$colors1 = ["red", "green", "blue"];
$colors2 = ["yellow", "green", "pink"];
$combinedColors = [];

// Ajoutez votre code ici
Exercice 4 : Recherche Sensible à la Casse

Énoncé :
Avec le tableau ["Red", "Green", "Blue", "Yellow"], vérifiez si la couleur “red” est présente, sans tenir compte de la casse.

Code à compléter :

$colors = ["Red", "Green", "Blue", "Yellow"];
$searchColor = "red";

// Ajoutez votre code ici
Exercice 5 : Recherche avec Option Stricte

Énoncé :
Dans le tableau ["1", "2", "3", "4", "5"], vérifiez si le nombre 3 est présent. Utilisez d’abord la recherche non stricte, puis la stricte.

Code à compléter :

$numbers = ["1", "2", "3", "4", "5"];
$needle = 3;

// Ajoutez votre code ici pour la recherche non stricte
// Ajoutez votre code ici pour la recherche stricte

Ces exercices fournissent une base pratique pour manipuler et comprendre les nuances de la fonction in_array() en PHP, en particulier avec des manipulations de tableaux communes et utiles dans le développement de logiciels.

🔎Solutions

Voici les solutions pour chaque exercice proposé, permettant de manipuler la fonction in_array() en PHP pour divers scénarios autour de la gestion des couleurs.

Vérification de Couleur Simple
$colors = ["red", "blue", "green", "yellow"];

if (in_array("blue", $colors)) {
    echo "Blue is in the array.";
} else {
    echo "Blue is not in the array.";
}
Ajout Conditionnel de Couleurs
$colors = ["red", "blue", "green"];
$newColor = readline("Enter a new color: ");

if (!in_array($newColor, $colors)) {
    $colors[] = $newColor; // Ajoute la nouvelle couleur si elle n'est pas déjà présente
}
print_r($colors); // Affiche le tableau final
Fusion de Tableaux avec Contrôle de Doublons
$colors1 = ["red", "green", "blue"];
$colors2 = ["yellow", "green", "pink"];
$combinedColors = $colors1; // Commence avec les couleurs du premier tableau

foreach ($colors2 as $color) {
    if (!in_array($color, $combinedColors)) {
        $combinedColors[] = $color; // Ajoute seulement si la couleur n'est pas déjà présente
    }
}

print_r($combinedColors); // Affiche le tableau combiné sans doublons
Recherche Sensible à la Casse
$colors = ["Red", "Green", "Blue", "Yellow"];
$searchColor = "red";

$found = false;
foreach ($colors as $color) {
    if (strtolower($color) == strtolower($searchColor)) {
        $found = true;
        break;
    }
}

echo $found ? "Color found." : "Color not found.";
Recherche avec Option Stricte
$numbers = ["1", "2", "3", "4", "5"];
$needle = 3;

// Recherche non stricte
if (in_array($needle, $numbers)) {
    echo "3 is found (non-strict).";
} else {
    echo "3 is not found (non-strict).";
}
echo "\n";

// Recherche stricte
if (in_array($needle, $numbers, true)) {
    echo "3 is found (strict).";
} else {
    echo "3 is not found (strict).";
}

Ces solutions illustrent diverses utilisations de la fonction in_array() en PHP, depuis la gestion de tableaux simples jusqu’à des scénarios plus complexes nécessitant des contrôles supplémentaires sur la sensibilité à la casse ou la stricte égalité de type.

Voici une série d’exercices avancés en PHP utilisant la fonction in_array() pour gérer des cas particuliers. Ces exercices sont conçus pour explorer des situations plus complexes, souvent rencontrées dans des contextes réels de développement.

Vérification dans un tableau associatif

Énoncé :
Vous disposez d’un tableau associatif où chaque clé représente un identifiant de produit et chaque valeur est un tableau contenant des informations sur le produit (nom, prix, couleur). Vérifiez si un produit de couleur “noir” existe dans le tableau.

Tableau :

$products = [
    "p001" => ["name" => "Chaise", "price" => 45, "color" => "rouge"],
    "p002" => ["name" => "Table", "price" => 150, "color" => "noir"],
    "p003" => ["name" => "Lampe", "price" => 22, "color" => "blanc"]
];

Code à compléter :

// Ajoutez votre code ici
Vérification avec types numériques

Énoncé :
Dans le tableau suivant, vérifiez si le nombre 42 est présent. Testez d’abord sans l’option stricte, puis avec l’option stricte.

Tableau :

$numbers = [42, "42", 420];

Code à compléter :

// Ajoutez votre code ici pour la recherche non stricte
// Ajoutez votre code ici pour la recherche stricte
Détection de sous-chaînes

Énoncé :
Vérifiez si une sous-chaîne est présente dans l’un des éléments d’un tableau de chaînes. Par exemple, vérifiez si le mot “art” est présent dans un tableau de noms d’articles.

Tableau :

$items = ["Smartphone", "Carte", "Charger", "Batterie"];

Code à compléter :

$substring = "art";
// Ajoutez votre code ici
Interaction avec des tableaux multi-dimensionnels

Énoncé :
Vous avez un tableau multi-dimensionnel représentant des étudiants et leurs notes. Vérifiez si un étudiant a obtenu au moins une note égale à 20.

Tableau :

$students = [
    ["name" => "Alice", "grades" => [12, 18, 20]],
    ["name" => "Bob", "grades" => [10, 14, 17]],
    ["name" => "Clara", "grades" => [19, 20, 15]]
];

Code à compléter :

// Ajoutez votre code ici
Comparaison d’objets

Énoncé :
Considérant un tableau contenant des instances d’une classe Color, où chaque instance représente une couleur spécifique, vérifiez si une instance de couleur spécifique (par exemple, une nouvelle instance de “red”) existe dans le tableau.

Classe :

class Color {
    public $color;

    public function __construct($color) {
        $this->color = $color;
    }
}

$colors = [new Color("red"), new Color("blue"), new Color("green")];
$searchColor = new Color("red");

Code à compléter :

// Ajoutez votre code ici

Ces exercices mettent en lumière diverses utilisations de in_array() en PHP, tout en abordant des scénarios où les données ne sont pas simples ou linéaires. Ils offrent une excellente pratique pour manipuler des données complexes et développer des solutions robustes.

🔎 Solutions

Voici les solutions pour les exercices avancés proposés utilisant la fonction in_array() en PHP pour gérer des cas particuliers.

Vérification dans un tableau associatif
$products = [
    "p001" => ["name" => "Chaise", "price" => 45, "color" => "rouge"],
    "p002" => ["name" => "Table", "price" => 150, "color" => "noir"],
    "p003" => ["name" => "Lampe", "price" => 22, "color" => "blanc"]
];

$found = false;
foreach ($products as $product) {
    if ($product["color"] === "noir") {
        $found = true;
        break;
    }
}
echo $found ? "Produit de couleur noir trouvé." : "Aucun produit de couleur noir trouvé.";
Vérification avec types numériques
$numbers = [42, "42", 420];

// Recherche non stricte
if (in_array(42, $numbers)) {
    echo "42 is found (non-strict).\n";
} else {
    echo "42 is not found (non-strict).\n";
}

// Recherche stricte
if (in_array(42, $numbers, true)) {
    echo "42 is found (strict).\n";
} else {
    echo "42 is not found (strict).\n";
}
Détection de sous-chaînes
$items = ["Smartphone", "Carte", "Charger", "Batterie"];
$substring = "art";
$found = false;

foreach ($items as $item) {
    if (strpos(strtolower($item), strtolower($substring)) !== false) {
        $found = true;
        break;
    }
}

echo $found ? "Sub-string 'art' is found." : "Sub-string 'art' is not found.";
Interaction avec des tableaux multi-dimensionnels
$students = [
    ["name" => "Alice", "grades" => [12, 18, 20]],
    ["name" => "Bob", "grades" => [10, 14, 17]],
    ["name" => "Clara", "grades" => [19, 20, 15]]
];

$found = false;
foreach ($students as $student) {
    if (in_array(20, $student["grades"])) {
        $found = true;
        break;
    }
}

echo $found ? "At least one student has a grade of 20." : "No student has a grade of 20.";
Comparaison d’objets
class Color {
    public $color;

    public function __construct($color) {
        $this->color = $color;
    }

    // Custom equality check since in_array uses ==
    public function equals(Color $other) {
        return $this->color === $other->color;
    }
}

$colors = [new Color("red"), new Color("blue"), new Color("green")];
$searchColor = new Color("red");

$found = false;
foreach ($colors as $color) {
    if ($color->equals($searchColor)) {
        $found = true;
        break;
    }
}

echo $found ? "Color 'red' is found in the array." : "Color 'red' is not found in the array.";

Chaque solution traite un cas spécifique qui pourrait survenir en développement, en utilisant des techniques appropriées pour utiliser au mieux in_array() ou d’autres fonctions PHP là où in_array() pourrait ne pas suffire directement.

Voici deux ⭐ exercices avancés en PHP ⭐ qui mettent en pratique la manipulation de tableaux et la gestion des données complexes.

Exercice 1 : Filtrage d’un Tableau de Produits

Énoncé :
Vous avez un tableau de produits, où chaque produit est représenté par un tableau associatif contenant des clés pour le nom (name), le prix (price), et les catégories (categories) sous forme de tableau. Écrivez un script PHP pour trouver tous les produits dont le prix est supérieur à 50 euros et qui appartiennent à la catégorie “électronique”.

Tableau de produits :

$products = [
    ["name" => "Ordinateur", "price" => 799, "categories" => ["électronique", "ordinateurs"]],
    ["name" => "Chaise", "price" => 49, "categories" => ["mobilier"]],
    ["name" => "Montre", "price" => 199, "categories" => ["électronique", "accessoires"]],
    ["name" => "Livre", "price" => 15, "categories" => ["livres"]],
    ["name" => "Smartphone", "price" => 599, "categories" => ["électronique", "téléphones"]]
];

Code à compléter :

// Ajoutez votre code ici pour filtrer et afficher les produits selon les critères donnés.
Exercice 2 : Gestion des Priorités dans un Système de Tickets

Énoncé :
Vous développez un système de gestion de tickets pour un service de support technique. Chaque ticket est un tableau associatif avec des informations sur le client (client), le problème (issue), et le niveau de priorité (priority). Les niveaux de priorité peuvent être “bas”, “moyen”, ou “élevé”. Écrivez un script PHP pour classer les tickets par ordre de priorité décroissante et affichez les résultats.

Tableau de tickets :

$tickets = [
    ["client" => "Alice", "issue" => "Problème de connexion", "priority" => "moyen"],
    ["client" => "Bob", "issue" => "Écran cassé", "priority" => "bas"],
    ["client" => "Clara", "issue" => "Perte de données", "priority" => "élevé"],
    ["client" => "David", "issue" => "Mise à jour échouée", "priority" => "moyen"]
];

Code à compléter :

// Ajoutez votre code ici pour trier et afficher les tickets par ordre de priorité décroissante.

Ces exercices permettent de manipuler des structures de données complexes et d’appliquer des critères de sélection et de tri spécifiques, simulant des scénarios réels rencontrés dans le développement d’applications en PHP.

🔎 Solutions

Voici les solutions pour les deux exercices avancés proposés en PHP, qui impliquent la manipulation et le filtrage de données complexes dans des tableaux associatifs.

Filtrage d’un Tableau de Produits
$products = [
    ["name" => "Ordinateur", "price" => 799, "categories" => ["électronique", "ordinateurs"]],
    ["name" => "Chaise", "price" => 49, "categories" => ["mobilier"]],
    ["name" => "Montre", "price" => 199, "categories" => ["électronique", "accessoires"]],
    ["name" => "Livre", "price" => 15, "categories" => ["livres"]],
    ["name" => "Smartphone", "price" => 599, "categories" => ["électronique", "téléphones"]]
];

$filteredProducts = array_filter($products, function ($product) {
    return $product["price"] > 50 && in_array("électronique", $product["categories"]);
});

foreach ($filteredProducts as $product) {
    echo "Produit : " . $product["name"] . ", Prix : " . $product["price"] . "€\n";
}
Gestion des Priorités dans un Système de Tickets
$tickets = [
    ["client" => "Alice", "issue" => "Problème de connexion", "priority" => "moyen"],
    ["client" => "Bob", "issue" => "Écran cassé", "priority" => "bas"],
    ["client" => "Clara", "issue" => "Perte de données", "priority" => "élevé"],
    ["client" => "David", "issue" => "Mise à jour échouée", "priority" => "moyen"]
];

usort($tickets, function ($a, $b) {
    $priorities = ["bas" => 1, "moyen" => 2, "élevé" => 3];
    return $priorities[$b["priority"]] <=> $priorities[$a["priority"]];
});

foreach ($tickets as $ticket) {
    echo "Client : " . $ticket["client"] . ", Problème : " . $ticket["issue"] . ", Priorité : " . $ticket["priority"] . "\n";
}

Ces solutions démontrent comment filtrer et trier des données dans des tableaux associatifs en PHP. Le premier exercice utilise array_filter pour extraire les produits répondant à certains critères, tandis que le second utilise usort avec une fonction de comparaison personnalisée pour classer les tickets par priorité. Ces techniques sont utiles pour gérer efficacement les données dans des applications PHP.

Autres articles

Les Fonctions en PHP : Comprendre et...
Le langage PHP (Hypertext Preprocessor) est un langage de script...
Read more
QCM en programmation - Exemple PDF
La programmation est devenue une compétence incontournable dans le monde...
Read more
Introduction à la Programmation Orientée Objet (POO)
Cet article vise à :Comprendre les concepts fondamentaux de la...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *