2012-03-16 2 views
0

나는이 두 변수를 특정 방식으로 비교하려고합니다. 그래서 나는 그것을 배열에 넣고 그런 식으로 비교해야한다는 것을 이미 알아 냈습니다. 그러나 문제가 있습니다.배열 1에 배열 2의 모든 문자가 있는지 확인하십시오.

입력 한 내용이 'rieebbb'인 경우 임의의 순서가 적용됩니다. 그리고 내 다른 입력은 '맥주'라고, 맥주라는 단어입니다.

맥주의 글자가 모두 'rieebbb'인지, 그리고 모두 한 번 사용하는지 어떻게 확인합니까? 그래서 'riebbb'는 무작위 순서에 'e'가 없기 때문에 긍정적 인 대답을해서는 안됩니다. 각 문자의 발생을 match..count

은 이미는 array_intersect()을 시도했지만 이미 주파수를 수행 배열 1.

+3

누군가가 낙서 도우미를 만들고있다 ... –

+0

단어 "철자 바꾸기"를 –

+0

그건 당신이'문자에 각 문자열을 변환 할 경우 수행 할 매우 간단합니다 구글 => 주파수 '지도. –

답변

1

에 사용 된 문자를 확인하지 않았기 때문에 그 did'nt는 totaly 일 「맥주」이라고하고 배열 A.에서 해당 저장

수 {{(B)는, 1}, {즉, 2}, {R, 1}) ...

타겟에서 동일 할 것이다

끈.

두 배열을 배열 A의 문자로 비교하십시오. 해결해야합니다. 여기

는 동일한에 대한 코드입니다 :

<?php 
$data = "beer"; 

$data2="rebe"; 
$p=0; 
$q=0; 
$stat=0; 
foreach (count_chars($data, 1) as $i => $val) 
{ 
    $arr1[$p][0]=chr($i); 
    $arr1[$p][1]=$val; 
    $p=$p+1; 
} 
foreach (count_chars($data2, 1) as $j => $val2) 
{ 
    $arr2[$q][0]=chr($j); 
    $arr2[$q][1]=$val2;  
    $q=$q+1; 
} 

for($st=0;$st<$q;$st=$st+1) 
{ 
     for($sp=0;$sp<$p;$sp=$sp+1) 
     { 
      if($arr2[$st][0]==$arr1[$sp][0]) 
      { 
        if($arr2[$st][1]<$arr1[$sp][1]) 
        { 
          $stat=1; 
        } 
      } 
    } 
} 
if($stat==0) 
{ 
echo "They match"; 
} 
    else 
{ 
echo "They dont match"; 
} 
?> 
+0

좋아, 그게 내게 많은 도움이되었지만 지금 나는 그들을 비교하는 동안 붙어있다. array_intersect_assoc()은 내가 원하는 것을하지는 않지만 무엇이 될지 알 수 없다. – Sgarz

+0

음 ... 무차별 한 힘! 중첩 된 루프 ..do 정말 코드가 필요 ??? ??? 그리고 내장 함수의 관점에서 생각하지 마십시오. 단지 지금까지만 당신을 데려 갈 수 있습니다. – wave5459

+0

가능하다면 코드를보고 싶습니다. :) – Sgarz

관련 문제