배열 값이 있는지 확인하는 방법은 무엇입니까?
또는 $something['say']
값이 있는지 어떻게 확인할 수 있습니까?'bla'
'omg'
$something = array('say' => 'bla', 'say' => 'omg');
사용 if
?
if(isset($something['say']) && $something['say'] == 'bla') {
// do something
}
Btw, 키로 값을 say
두 번 할당 하므로 배열이 하나의 값만 가진 배열이됩니다.
PHP in_array 함수를 사용할 수 있습니다.
if( in_array( "bla" ,$yourarray ) )
{
echo "has bla";
}
사용 : 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_search()
in_array()
- 의 조합
array_flip()
및array_key_exists()
색인이 정의되었는지 확인하려면 다음을 수행하십시오. isset($something['say'])
You can test whether an array has a certain element at all or not with isset() or sometimes even better array_key_exists() (the documentation explains the differences). If you can't be sure if the array has an element with the index 'say' you should test that first or you might get 'warning: undefined index....' messages.
As for the test whether the element's value is equal to a string you can use == or (again sometimes better) the identity operator === which doesn't allow type juggling.
if( isset($something['say']) && 'bla'===$something['say'] ) {
// ...
}
in_array() is fine if you're only checking but if you need to check that a value exists and return the associated key, array_search is a better option.
$data = [
'hello',
'world'
];
$key = array_search('world', $data);
if ($key) {
echo 'Key is ' . $key;
} else {
echo 'Key not found';
}
This will print "Key is 1"
<?php
if (in_array('your_variable', $Your_array)) {
$redImg = 'true code here';
} else {
$redImg = 'false code here';
}
?>
Just use the PHP function 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";
}
?>
Well, first off an associative array can only have a key defined once, so this array would never exist. Otherwise, just use in_array()
to determine if that specific array element is in an array of possible solutions.
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
Another use of in_array in_array() with an array as needle
<?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";
}
?>
Assuming you are using a simple array
. i.e.
$MyArray = array("red","blue","green");
You can use this function
function val_in_arr($val,$arr){
foreach($arr as $arr_val){
if($arr_val == $val){
return true;
}
}
return false;
}
Usage:
val_in_arr("red",$MyArray); //returns true
val_in_arr("brown",$MyArray); //returns false
참고URL : https://stackoverflow.com/questions/2440506/how-to-check-if-an-array-value-exists
'program story' 카테고리의 다른 글
CURLOPT_POSTFIELDS에 대한 curl POST 형식 (0) | 2020.08.25 |
---|---|
zsh에서 ALT + LeftArrowKey 솔루션 찾기 (0) | 2020.08.24 |
iOS9 : 유니버설 링크가 작동하지 않습니다. (0) | 2020.08.24 |
Eclipse JUNO가 시작되지 않습니다. (0) | 2020.08.24 |
전체 저장 프로 시저 코드를 표시하는 방법은 무엇입니까? (0) | 2020.08.24 |