답변:
사용 : 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";
}
다음은 출력입니다. The 'prize_id' element is in the array
사용 : 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";
}
출력 없음
결론적 array_key_exists()
으로 간단한 배열에서는 작동하지 않습니다. 배열 키가 있는지 여부를 찾는 것뿐입니다. in_array()
대신 사용하십시오 .
다음은 더 많은 예입니다.
<?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 ||
*/
?>
여기 있습니다 PHP DEMO
array_key_exists()
후자 $search_array
는 연관 배열을 포함 하는 동안 배열 키를 확인합니다 . 틀림없이 작동하지 않을 것입니다. array_flip()
먼저 해야 합니다.
당신이 사용할 수있는:
array_search()
in_array()
array_flip()
및array_key_exists()
isset () 또는 때로는 더 나은 array_key_exists ()를 사용 하여 배열에 특정 요소가 있는지 여부를 테스트 할 수 있습니다. (문서에 차이점이 설명되어 있음). 배열에 인덱스가 'say'인 요소가 있는지 확실하지 않은 경우 먼저 테스트해야합니다. 그렇지 않으면 'warning : undefined index ....'메시지가 표시 될 수 있습니다.
요소의 값이 문자열과 같은지 테스트하려면 == 또는 유형 juggling을 허용하지 않는 ID 연산자 === 를 사용할 수 있습니다.
if( isset($something['say']) && 'bla'===$something['say'] ) {
// ...
}
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
바늘로 배열을 사용하는 in_array in_array () 의 또 다른 사용
<?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";
}
?>