web-dev-qa-db-fra.com

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 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?

56
hairynuggets

Utilisez la fonction in_array() .

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

if (in_array('kitchen', $array)) {
    echo 'this array contains kitchen';
}
125
Wiseguy
// 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
15
Peter

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

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:

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

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

3
Hubert Jarema

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.

3
crenate
if (in_array('kitchen', $rooms) ...
1
Eugen Rieck

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";
0
antelove

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

0
Pranav Rana