68 votes

Comment puis-je vérifier si un tableau contient une valeur spécifique en php ?

J'ai une variable PHP de type Array et j'aimerais savoir si elle contient une valeur spécifique et informer l'utilisateur qu'elle est là. Voici mon tableau :

 Array ( [0] => kitchen [1] => bedroom [2] => living_room [3] => dining_room) 

et je voudrais 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 ?

154voto

Wiseguy Points 9441

Utilisez la fonction in_array() .

 $array = array('kitchen', 'bedroom', 'living_room', 'dining_room');

if (in_array('kitchen', $array)) {
    echo 'this array contains kitchen';
}

20voto

Peter Points 1994
// 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

11voto

Abbas Points 3737

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));
    }
?>

3voto

bobek Points 4996

Vous devez utiliser un algorithme de recherche sur votre tableau. Cela dépend de la taille de votre tableau, vous avez beaucoup de choix sur ce qu'il faut utiliser. Ou vous pouvez utiliser l'une des fonctions intégrées :

http://www.w3schools.com/php/php_ref_array.asp

http://php.net/manual/en/function.array-search.php

3voto

mithy Points 1221

Depuis http://php.net/manual/en/function.in-array.php

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

Recherche une aiguille dans une botte de foin en utilisant une comparaison lâche à moins que strict ne soit défini.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X