2014-09-24 3 views

답변

2

검색 키

그래서 당신은 값을 알고 있다면, 당신은 $ 키를 찾고있는 것 같아요. 이어서 array_search을 사용

$array = array(0 => 'value1', 1 => 'value2', 2 => 'value3', 3 => 'red'); 
$key = array_search('value2', $array); // 2 

를 그것이 multidimentional 배열 기능이 사용되는 경우에 배열

function recursive_array_search($needle,$haystack) { 
    foreach($haystack as $key=>$value) { 
     $current_key=$key; 
     if($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false)) { 
      return $current_key; 
     } 
    } 
    return false; 
} 

을?

값이 배열에 있는지 알고 싶으면 in_array 함수를 사용하십시오.

if (in_array("value1", $array)) { 
    echo "value1 is in the array"; 
} 

그것은 multidimentional 배열은 다음의 경우 사용 : 위의 배열로

function in_multiarray($elem, $array) 
{ 
    $top = sizeof($array) - 1; 
    $bottom = 0; 
    while($bottom <= $top) 
    { 
     if($array[$bottom] == $elem) 
      return true; 
     else 
      if(is_array($array[$bottom])) 
       if(in_multiarray($elem, ($array[$bottom]))) 
        return true; 

     $bottom++; 
    }   
    return false; 
} 
+0

그게 좋긴하지만 나는 얼마나 많은 차원을 알고 있는지 모르겠다. 다차원 배열입니다. 치수가 얼마나되는지 모르겠습니다. –

+2

그는 다차원 배열 솔루션을 제공했습니다. @MarceloNoronha –

+1

굉장한 대답 @ Adam Sinclair –

0

당신은 알고 있거나 얼마나 많은 차원을 걱정 할 필요가 없습니다. Adam Sinclair의 대답의 "검색 키"섹션에있는 다차원 예제는 배열의 전체 지형을 크롤링하여 모양이 어떻게되는지를 발견하고 완료된 부분을 잊어 버리며 검색 한 내용을 얻지 못합니다.

0

먼저 in_array/is_array 함수를 사용하여 배열의 값을 검색 할 수 있지만 in_array가 다차원 배열에서 작동하지 않으므로 다중 dimensinoal 배열이있을 때 foreach 루프를 사용하여 검색하는 것이 더 좋습니다. 여기에 다차원 배열에 대해 작동하는 PHP 매뉴얼의 함수가 있습니다. 따라서 입력 배열이 얼마나 깊은 지 상관하지 않으므로 재귀 적으로 작동합니다.

function myInArray($array, $value, $key){ 
//loop through the array 
foreach ($array as $val) { 
    //if $val is an array cal myInArray again with $val as array input 
    if(is_array($val)){ 
    if(myInArray($val,$value,$key)) 
     return true; 
    } 
    //else check if the given key has $value as value 
    else{ 
    if($array[$key]==$value) 
     return true; 
    } 
} 
return false; 

}

관련 문제