2012-01-16 19 views
51

Mam zmienną PHP typu Array i chciałbym dowiedzieć się, czy zawiera określoną wartość i niech użytkownik wie, że tam jest. To jest mój tablicy:Jak mogę sprawdzić, czy tablica zawiera określoną wartość w php?

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

i chciałbym zrobić coś takiego:

if(Array contains 'kitchen') {echo 'this array contains kitchen';} 

Jaki jest najlepszy sposób, aby wykonać powyżej?

+1

in_array wydaje się najlepiej :) Zobacz także array_key_exists dla tablic asocjacyjnych. –

+0

możliwy duplikat [php - znajdź jeśli tablica zawiera element] (http://stackoverflow.com/questions/3416614/php-find-if-an-array-contains-an-element) – user

Odpowiedz

114

Użyj in_array() function.

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

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

Uwaga: To nie jest konieczne, aby wszystkie elementy tablicy PHP miały ten sam typ danych. Mogą być różnych typów danych. Jeśli chcesz również dopasować typ danych, podaj "true" jako trzeci argument 'in_array'. –

+0

jak to zrobić bez użycia funkcji in_array()? – user2215270

+0

@ user2215270 Możesz iterować przez tablicę za pomocą ['foreach'] (http: // php.net/foreach) lub inną strukturę kontroli pętli, sprawdzając bieżący element w każdej iteracji. Ale dlaczego wolisz to zrobić? – Wiseguy

1
if (in_array('kitchen', $rooms) ... 
8

Zobacz 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)); 
    } 
?> 
12
// 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 
0

Korzystanie zmiennej dynamicznej dla wyszukiwania w tablicy

/* 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

obserwuję to w jaki sposób można to zrobić:

<?php 
$rooms = ['kitchen', 'bedroom', 'living_room', 'dining_room']; # this is your array 
if(in_array('kitchen', $rooms)){ 
    echo 'this array contains kitchen'; 
} 

Upewnij się, że szukać kuchni i nie Kuchnia. W tej funkcji rozróżniana jest wielkość liter. Tak, funkcja poniżej po prostu nie będzie działać:

$rooms = ['kitchen', 'bedroom', 'living_room', 'dining_room']; # this is your array 
if(in_array('KITCHEN', $rooms)){ 
    echo 'this array contains kitchen'; 
} 

Jeśli raczej chcą w szybki sposób dokonać tej wyszukiwania przypadek niewrażliwe, przyjrzeć się proponowanym rozwiązaniem w tym post: https://stackoverflow.com/a/30555568/8661779

Źródło: http://dwellupper.io/post/50/understanding-php-in-array-function-with-examples

Powiązane problemy