2012-02-25 3 views
1

PHP에서 두 개의 2D 배열을 비교하려고합니다. 내 머리가 모든 재귀로 상처를 받고 있습니다. 익숙한 사람에게는 분명히 드러날 것입니다.두 개의 (잠재적으로 다른 크기의) 2D 배열을 비교하는 PHP

I는 다음과 같이 두 개의 2 차원 배열이라고 $ submittedArray2D 및 $ dbArray가 : $ dbArray가 데이터베이스에 이미있는 것을 보유하는 동안

{ 
    [0] => { 
     [0] => 'name' 
     [1] => 'sectors' 
     [2] => 'address' 
     [3] => 'url' 
    } 
    [1] => { 
     [0] => 'name' 
     [1] => 'sectors' 
     [2] => 'address' 
     [3] => 'url' 
    } 
    ...  
} 

$ submittedArray2D는, 사용자의 입력에서 온다.

값을 비교하여 $ submittedArray2D에서 값이 업데이트되었는지 확인하고 변경 사항을 $ dbArray에 적절히 저장하고 싶습니다.

또한 변경된 주소를 지오 코딩을 위해 별도의 함수로 전달하려고합니다. 그 결과는 다른 데이터베이스 필드에 저장되며, 여기서 키는 $ dbArray의 동일한 항목을 참조합니다 (따라서 $ geocode [4]는 $ dbArray [4], 예를 들어).

foreach 문을 순차적으로 통과하려고 일부 foreach 문을 시도했지만 두 배열이 더 이상 순서가 없기 때문에 항목 중 하나가 배열 중간에서 제거 된 경우이 오류가 발생합니다. 나는 각 어레이 엔트리에 대해 일종의 ID가 의미가 있는지 궁금해하지만 어디서부터 시작해야할지 모르겠습니다.

모든 아이디어 나 조언을 보내 주시면 감사하겠습니다.

답변

0

각 배열 요소 옆에 고유 한 ID를 저장하여 관리 했으므로 루프를 통해 해당 ID가 비교기 배열에 있는지 여부를 확인한 다음 주소가 변경되었는지 여부를 확인하고 처리를 위해 별도의 배열에 ID와 함께 변경 사항을 저장하십시오.

관련 문제