2015-01-31 12 views
0

이것은 나를 괴롭히는 일반적인 간단한 질문입니다. 배열에 변수가 저장되어 있고 문자열 배열 값 ($ myarray)을 변수 ($ match)에 저장된 문자열에서 검색하고 일치 시키려고합니다. 루프를 사용하여 값을 어떻게 일치시킬 수 있습니까? 얼마나 많은 일치가 있으면 거기에 계산합니까? for 루프 또는 while 루프를 사용해야합니까? 이것은 내 샘플 데이터입니다.루프와 조건을 사용하는 배열의 문자열/문자열 일치 - PHP

$myArray = array('one', 'two', 'three', 'four', 'five'); 
$count = count($myArray); 
$match = 'six'; 
$match2 = array('car', 'dog'); 

for ($myArray=0; $myArray < $count; $myArray++) { 
    if($myArray == $match){ 
     echo 'do something'; 
    }else{ 
     echo 'do something'; 
    } 
} 

또한 한 배열의 값을 다른 배열과 일치시킬 수 있습니까? 예를 들어, $ myArray의 모든 값을 검색하여 $ match2의 값과 일치시키고 모든 일치를 반환합니다 (예 : 10 개 항목 중 2 일치).

루프 또는 배열 처리. 도움 주셔서 감사합니다.

+0

나는 'foreach'를 사용하는 것이 더 쉽고 분명하기 때문에 선호합니다. 그러나 각자 자신에게, 당신은 당신이 좋아하는 것을 사용할 수 있습니다. – Barmar

+0

추가 아이디어를 제공해 주셔서 감사합니다. 이제 나는 따라야 할 마음이 있습니다. 각 루프마다 샘플 코드를 사용할 수 있습니까? – Rodge

답변

4

찾고있는 기능이 array_intersect()이라고 생각합니다. 이 2 개의 배열을주고 공통적으로 가지고있는 요소를 포함하는 배열을 반환합니다. 그런 다음 count()을 사용하여 번호를 가져올 수 있습니다.

$matches = count(array_intersect($myArray, $match2)); 
+0

PHP에는 편리한 배열 함수가 몇 가지 있습니다 : http://php.net/manual/en/ref.array.php – mopo922

+0

와우! 좋아, 그것은 모든 경기를 계산합니다. 일치하는 모든 값을 에코하려면 어떻게해야합니까? – Rodge

+1

변수에'array_intersect'의 결과를 넣고 그 위에 반복하십시오. – Barmar

0

당신은 당신은 당신이 요 일치를 원하는 문자열을 그 위치에 문자열을 비교하여주기에서 현재 인덱스, 우리는이 일 index 이름 것보고, 변수가 아닌 배열 변수가 필요합니다.

$myArray = array('one', 'two', 'three', 'four', 'five'); 
$count = count($myArray); 
$match = 'six'; 
$match2 = array('car', 'dog'); 
$numberMatches = 0; 

for ($index=0; $index < $count; $index++) { 
    if($myArray[index] == $match){ 
     echo "It matches" ; 
     $numberMatches++; 
    }else{ 
     echo "It doesn' t match"; 
    } 
}