2014-06-10 4 views
2

2 개의 배열을 비교하고 싶지만, 두 개의 배열은 때로는 크기가 다를 수 있습니다.다른 크기의 배열을 비교하는 방법

예를 들어, I는 형상을 가지고 있고이 함께 값 나타날

:

반대편
// The post send more values than other array: 
// name , email , password, phone , address 
// but in other cases send only one value and the other array it's bigger 
foreach($_POST as $key=>$value) 
{  
    $fields_array[]=$key;  
} 

, 난에 대해 비교할이 다른 배열을 가질

$fields_compare=array("name","email"); 

$ fields_array라는 배열이 더 큰 경우이 문제는 발생하지 않습니다. 그러나 예를 들어 두 번째 배열이 더 큰 경우 문제가 발생합니다.

나는 계속 이런 짓을 :

$aa=array_diff($fields_array,$fields_compare); 
$bb=array_intersect($fields_array,$fields_compare); 

foreach ($aa as $aaa) 
{ 
    // Show the others different values, no show name and email 
    print "".$aaa."<br>"; 
} 

foreach ($bb as bbb) 
{ 
    // Show the same Values in this case the same will be name and email /// 
    print "".$bbb."<br>"; 
} 

첫 번째 배열이 크지 만, 다른 경우에는 작동하지 않고 실제 차이를 보여주지 않는 경우에이 모든 작동합니다.

+0

foreach ($ bb as bbb)를 사용하면 foreach ($ bb as $ bbb) 여야합니다. –

+0

그게 내가 여기에있는 것들을 기록했기 때문에 그 오류입니다. 나는 지금 생각하고 있습니다. – user3626084

+0

정확하게 (실제 데이터와 예상 된 결과와) 비교하려고하는 것은 무엇입니까? 행동은 당신이 "초과"요소로 무엇을하고 싶은지에 달려 있습니다. – slugonamission

답변

0

이것이 사용자의 의도인지 확실하지 않지만 POST 값을 반복하면서 입력 값 유형을 테스트하면 어떨까요?

$fields_compare=array("name" => true, "email" => true); //faster than in_array(); 
foreach($_POST as $key=>$value) 
{  
    if(isSet($fields_compare[$key])) 
    { 
     //do something (eg: save $value to text file) 
    } 
} 
+0

예 입력 게시물 값, 예 – user3626084