2012-01-16 36 views
51

Tôi có một biến PHP loại Array và tôi muốn tìm hiểu xem nó có chứa một giá trị cụ thể và cho người dùng biết rằng nó có ở đó không. Đây là mảng của tôi:Làm cách nào để kiểm tra xem một mảng có chứa một giá trị cụ thể trong php không?

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

và tôi muốn làm điều gì đó như:

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

cách tốt nhất để làm các việc trên là gì?

+1

in_array có vẻ tốt nhất :) Đồng thời xem array_key_exists cho mảng kết hợp. –

+0

bản sao có thể có của [php - tìm nếu một mảng chứa một phần tử] (http://stackoverflow.com/questions/3416614/php-find-if-an-array-contains-an-element) – user

Trả lời

114

Sử dụng in_array() function.

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

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

Lưu ý: Nó không phải là cần thiết rằng tất cả các phần tử của một mảng PHP phải có cùng kiểu dữ liệu. Chúng có thể có các kiểu dữ liệu khác nhau. Nếu bạn muốn phù hợp với kiểu dữ liệu, sau đó truyền 'true' làm đối số thứ ba của' in_array'. –

+0

cách thực hiện bằng cách sử dụng hàm in_array()? – user2215270

+0

@ user2215270 Bạn có thể lặp qua mảng với một ['foreach'] (http: // php.net/foreach) hoặc cấu trúc điều khiển vòng lặp khác, kiểm tra phần tử hiện tại mỗi lần lặp lại. Nhưng tại sao bạn thích làm điều đó? – Wiseguy

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

Xem 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

Sử dụng biến động cho tìm kiếm trong mảng

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

Sau đây là cách bạn có thể làm điều này:

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

Hãy chắc chắn rằng bạn tìm kiếm bếp và không Nhà bếp. Hàm này phân biệt chữ hoa chữ thường. Vì vậy, chức năng dưới đây chỉ đơn giản là sẽ không làm việc:

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

Nếu bạn chứ không phải muốn một cách nhanh chóng để làm cho trường hợp tìm kiếm này không nhạy cảm, có một cái nhìn tại các giải pháp được đề xuất trong bài trả lời này: https://stackoverflow.com/a/30555568/8661779

Nguồn: http://dwellupper.io/post/50/understanding-php-in-array-function-with-examples

Các vấn đề liên quan