J'ai une variable PHP de type Array et j'aimerais savoir si elle contient une valeur spécifique et informer l'utilisateur que celle-ci s'y trouve. Ceci est mon tableau:
Array ( [0] => kitchen [1] => bedroom [2] => living_room [3] => dining_room)
et j'aimerais faire quelque chose comme:
if(Array contains 'kitchen') {echo 'this array contains kitchen';}
Quelle est la meilleure façon de faire ce qui précède?
Utilisez la fonction in_array()
.
$array = array('kitchen', 'bedroom', 'living_room', 'dining_room');
if (in_array('kitchen', $array)) {
echo 'this array contains kitchen';
}
// Once upon a time there was a farmer
// He had multiple haystacks
$haystackOne = range(1, 10);
$haystackTwo = range(11, 20);
$haystackThree = range(21, 30);
// In one of these haystacks he lost a needle
$needle = Rand(1, 30);
// He wanted to know in what haystack his needle was
// And so he programmed...
if (in_array($needle, $haystackOne)) {
echo "The needle is in haystack one";
} elseif (in_array($needle, $haystackTwo)) {
echo "The needle is in haystack two";
} elseif (in_array($needle, $haystackThree)) {
echo "The needle is in haystack three";
}
// The farmer now knew where to find his needle
// And he lived happily ever after
Voir in_array
<?php
$arr = array(0 => "kitchen", 1 => "bedroom", 2 => "living_room", 3 => "dining_room");
if (in_array("kitchen", $arr))
{
echo sprintf("'kitchen' is in '%s'", implode(', ', $arr));
}
?>
Vous devez utiliser un algorithme de recherche sur votre tableau. Cela dépend de la taille de votre tableau, vous avez l'embarras du choix. Ou vous pouvez utiliser l'une des fonctions intégrées:
De http://php.net/manual/en/function.in-array.php
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
Recherche une aiguille dans la botte de foin en utilisant une comparaison approximative, sauf si strict est défini.
if (in_array('kitchen', $rooms) ...
Utilisation de variable dynamique pour la recherche dans un tableau
/* https://ideone.com/Pfb0Ou */
$array = array('kitchen', 'bedroom', 'living_room', 'dining_room');
/* variable search */
$search = 'living_room';
if (in_array($search, $array)) {
echo "this array contains $search";
} else
echo "this array NOT contains $search";
Voici comment procéder:
<?php
$rooms = ['kitchen', 'bedroom', 'living_room', 'dining_room']; # this is your array
if(in_array('kitchen', $rooms)){
echo 'this array contains kitchen';
}
Assurez-vous de rechercher kitchen et non Kitchen. Cette fonction est sensible à la casse. Ainsi, la fonction ci-dessous ne fonctionnera tout simplement pas:
$rooms = ['kitchen', 'bedroom', 'living_room', 'dining_room']; # this is your array
if(in_array('KITCHEN', $rooms)){
echo 'this array contains kitchen';
}
Si vous souhaitez un moyen rapide de rendre cette recherche insensible à la casse, consultez la solution proposée dans cette réponse: https://stackoverflow.com/a/30555568/8661779
Source: http://dwellupper.io/post/50/understanding-php-in-array-function-with-examples