2017-02-13 7 views
0

데이터를 체크 상자에서 선택한 후 내파 된 두 개의 다른 테이블의 데이터가 있는데, 이들은 ','로 나뉩니다. 데이터베이스에서 그들을 선택하고 나면 두 가지 변수가 이렇게 보일 것입니다. 일치가있는 경우 두 변수에 일치하는 색상 중 하나 이상이있을 때은 내파 데이터와 다른 내삽을 매칭합니다.

$firstvar = Red, Blue, Green, Yellow 

$secondvar = Green, Purple, White 

그래서 내가, 내가 확인할 수있는 방법을 알고 싶어요.

내가 함께 노력했습니다

if (strpos($firstvar , $firstvar) !== false) { 
    echo 'There is a match'; 
} 

그러나 그것은 작동하지 않습니다. 사용 이제이 기능

$firstvar = explode(",",$firstvar); 
$secondvar = explode(",",$secondvar); 

: : 그냥이 같은

:

+2

확률 당 array_intersect? - 당신의 예제 (거의)가 매뉴얼에 정확히 일치하기 때문에 이상합니다!?!?! – Strawberry

+1

@Strawberry point 당신이 그들을 내파하기 전에 이것을하십시오 ... – nerdlyist

+0

더 나은 옵션 array_intersect –

답변

1

데이터베이스에서 결과를 가져 오는 한 후,이 두 변수를 폭발

$match = array_intersect($firstvar,$secondvar); 

지금을의를 내파 결과 출력 :

$result = implode(",",$match); 
echo $result; 

희망, 이것이 유용 할 수 있습니다.

+0

이것은 갈 길이 같았지만 코드에 이상한 문제가 있습니다. 음악 장르의 예를 들어 봅시다 : $ var = 'Pop, Blues'; vartwo = 'Jazz, Rock, Pop'; $ genreone = 폭발 (",", $ var); \t \t \t $ genretwo = explode (",", $ vartwo); $ 결과 = array_intersect ($ genreone, $ genretwo); if (! empty ($ result)) { echo 'Works'; } else { echo '작동하지 않음'; } 이렇게하면 일치하는 항목이 없지만 분명히 장르 Pop이 하나 있습니다. – Hazelcraft

+0

$ vartwo에서 쉼표 뒤에 'Pop'에 여분의 공백이 있기 때문에 추가 공간을 제거하거나 폭발 중에 쉼표로 공백을 추가하십시오 (this-> $ genreone = explode ("," $ var); –

+0

간단히 말하면, 데이터베이스에 저장하기 전에 데이터를 배열 (문자열에 배열) 한 다음, 데이터베이스에서 검색 한 후 동일한 방법으로 데이터 (문자열을 배열로)를 분해하면됩니다. 예를 들어 : 데이터베이스에 저장하는 동안 쉼표 뒤에 쉼표를 추가 한 경우 explode 중에 데이터베이스에서 검색 한 후 쉼표 뒤에 추가 공간을 제공하십시오. 그렇지 않으면 여분의 공백이 배열 값에 삽입됩니다. –