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.