Câu trả lời:
Sử dụng if
?
if(isset($something['say']) && $something['say'] == 'bla') {
// do something
}
Btw, bạn đang gán một giá trị với khóa say
hai lần, do đó mảng của bạn sẽ dẫn đến một mảng chỉ có một giá trị.
Sử dụng: in_array()
$search_array = array('user_from','lucky_draw_id','prize_id');
if (in_array('prize_id', $search_array)) {
echo "The 'prize_id' element is in the array";
}
Đây là đầu ra: The 'prize_id' element is in the array
Sử dụng: array_key_exists()
$search_array = array('user_from','lucky_draw_id','prize_id');
if (array_key_exists('prize_id', $search_array)) {
echo "The 'prize_id' element is in the array";
}
Không có đầu ra
Kết luận, array_key_exists()
không hoạt động với một mảng đơn giản. Nó chỉ để tìm xem một khóa mảng có tồn tại hay không. Sử dụng in_array()
thay thế.
Đây là ví dụ khác:
<?php
/**++++++++++++++++++++++++++++++++++++++++++++++
* 1. example with assoc array using in_array
*
* IMPORTANT NOTE: in_array is case-sensitive
* in_array — Checks if a value exists in an array
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a' => 'bla', 'b' => 'omg');
if (in_array('omg', $something)) {
echo "|1| The 'omg' value found in the assoc array ||";
}
/**++++++++++++++++++++++++++++++++++++++++++++++
* 2. example with index array using in_array
*
* IMPORTANT NOTE: in_array is case-sensitive
* in_array — Checks if a value exists in an array
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('bla', 'omg');
if (in_array('omg', $something)) {
echo "|2| The 'omg' value found in the index array ||";
}
/**++++++++++++++++++++++++++++++++++++++++++++++
* 3. trying with array_search
*
* array_search — Searches the array for a given value
* and returns the corresponding key if successful
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a' => 'bla', 'b' => 'omg');
if (array_search('bla', $something)) {
echo "|3| The 'bla' value found in the assoc array ||";
}
/**++++++++++++++++++++++++++++++++++++++++++++++
* 4. trying with isset (fastest ever)
*
* isset — Determine if a variable is set and
* is not NULL
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a' => 'bla', 'b' => 'omg');
if($something['a']=='bla'){
echo "|4| Yeah!! 'bla' found in array ||";
}
/**
* OUTPUT:
* |1| The 'omg' element value found in the assoc array ||
* |2| The 'omg' element value found in the index array ||
* |3| The 'bla' element value found in the assoc array ||
* |4| Yeah!! 'bla' found in array ||
*/
?>
Đây là PHP DEMO
array_key_exists()
kiểm tra các khóa mảng trong khi khóa sau $search_array
chứa mảng kết hợp. Không nghi ngờ gì nữa, nó sẽ không hoạt động. Bạn nên array_flip()
nó đầu tiên.
Bạn có thể dùng:
array_search()
in_array()
array_flip()
vàarray_key_exists()
Để kiểm tra xem chỉ mục có được xác định hay không: isset($something['say'])
Bạn có thể kiểm tra xem một mảng có một phần tử nhất định hay không bằng Isset () hoặc đôi khi tốt hơn là array_key_exists () (tài liệu giải thích sự khác biệt). Nếu bạn không thể chắc chắn liệu mảng có một phần tử có chỉ mục 'nói rằng', bạn nên kiểm tra phần tử đó trước hoặc bạn có thể nhận được thông báo 'warning: undefined index ....'.
Đối với việc kiểm tra xem giá trị của phần tử có bằng một chuỗi hay không, bạn có thể sử dụng == hoặc (một lần nữa đôi khi tốt hơn) toán tử nhận dạng === không cho phép loại tung hứng .
if( isset($something['say']) && 'bla'===$something['say'] ) {
// ...
}
in_array () tốt nếu bạn chỉ đang kiểm tra nhưng nếu bạn cần kiểm tra xem một giá trị có tồn tại hay không và trả về khóa được liên kết, thì array_search là một lựa chọn tốt hơn.
$data = [
'hello',
'world'
];
$key = array_search('world', $data);
if ($key) {
echo 'Key is ' . $key;
} else {
echo 'Key not found';
}
Điều này sẽ in "Khóa là 1"
Chỉ cần sử dụng hàm PHP array_key_exists()
<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?>
<?php
if (in_array('your_variable', $Your_array)) {
$redImg = 'true code here';
} else {
$redImg = 'false code here';
}
?>
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
Một cách sử dụng khác của in_array in_array () với một mảng là kim
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array(array('p', 'h'), $a)) {
echo "'ph' was found\n";
}
if (in_array(array('f', 'i'), $a)) {
echo "'fi' was found\n";
}
if (in_array('o', $a)) {
echo "'o' was found\n";
}
?>
Giả sử bạn đang sử dụng một mảng đơn giản
. I E
$MyArray = array("red","blue","green");
Bạn có thể sử dụng chức năng này
function val_in_arr($val,$arr){
foreach($arr as $arr_val){
if($arr_val == $val){
return true;
}
}
return false;
}
Sử dụng:
val_in_arr("red",$MyArray); //returns true
val_in_arr("brown",$MyArray); //returns false