2014-10-30 3 views
2

비교하고 고유 레코드를 테이블 A에서 테이블 A로 추가하려고합니다. 존재하는 경우 중복 레코드를 건너 뛰고 다음 레코드에서 검색을 수행합니다 일치하는 항목을 찾은 다음 추가하십시오. 가 [SalesDescription] 필드 내가 array_unique 및 array_differ를 사용하여 시도두 배열을 비교하고 고유 레코드를 테이블에 추가하는 방법

를 사용하여 비교는 array_intersect하지만 이러한 기능 중 어느 것도 중복/나를 위해 못할 일을 제거하지 얻을 캔트. 기록 제가

Array ( 
     [id] => 3054535376 
     [table_id] => 50240233993 
     [created] => 2014-10-30T09:52:15-0600 
     [updated] => 2014-10-30T09:52:15-0600 
     [created_by] => 3045444045538 
     [fields] => Array ( 
         [Work Order] => 87565 
         [SalesDescription] => 18X5X12 1/8 SOLID FORKLIFT TIRE PRESS-ONS 
         [SO#] => 14061 
         [SO Date] => 2013-10-16T00:00:00-0600 
         [Promised Date] => 2014-10-30T09:52:15-0600 
         [SO Qty] => 1.0000000000000000000 
         [WO Qty] => 14061 
         [Color] => 2 
         [s] => 2 
         [SHIP BY] => 2014-10-29 
         [CALC PROMISED DATE] => 2014-10-30 
         ) 
    ) 

표 B에 데이터를 추가하고자하는 테이블에서 : 기록 테이블로부터 난 싶은 곳 여기

코드 데이터

$records=array(
     'SalesDescription'   => $row['SalesDescription'], 
     'SO Qty' => $row['Quantity'], 
     'WO Qty'   => $row['Reference'], 
     'SO Date'   => $row['TransactionDate'], 
     'Color'   => $row['DistNumber'], 
     'SO#'   => $row['Reference'], 
     'Promised Date'   => $row['GoodThruDate'], 



    ); 

    $tv->addRecord($tableId, $records);//calls addRecord() function 

표를 더해이고 에서 데이터를 가져 오는 것

Array ( 
     [0] => CAS001 
     [CustomerId] => CAS001 
     [1] => CASH CUSTOMER 
     [Customer_Bill_Name] => CASH CUSTOMER 
     [2] => Will Call 
     [WhichShipVia] => Will Call 
     [3] => [INV_POSOOrderNumber] => [4] => 2013-07-24 
     [ShipByDate] => 2013-07-24 
     [5] => [GoodThruDate] => [6] => [CustomerSONo] => [7] => 13867 
     [Reference] => 13867 [8] => 2013-07-24 
     [TransactionDate] => 2013-07-24 
     [9] => 1 
     [DistNumber] => 1 
     [10] => 2.0000000000000000000 
     [Quantity] => 2.0000000000000000000 
     [11] => 121130581 
     [ItemId] => 121130581 
     [12] => 18X5X12 1/8 SOLID FORKLIFT TIRE PRESS-ONS 
     [SalesDescription] => 18X5X12 1/8 SOLID FORKLIFT TIRE PRESS-ONS 
     [13] => [PartNumber] => [14] => 18X5X12 1/8 SOLID FORKLIFTTIRE 
     [ItemDescription] => 18X5X12 1/8 SOLID FORKLIFTTIRE 
     ) 
+0

두 배열 필드가 다른 내가 너희를 모두 배열에 특정 필드 값을 비교하고 있다고 생각, 당신은 단순히 경우 (a.field을 확인합니다. salesDescription == b.salesDescription)? – Asik

+0

@Asik Thanks !! 부분적으로 작동하지만 PHP 스크립트를 다시 실행하면 중복 레코드가 생성됩니다. – KGK

답변

0

약간의 번거 로움이 있지만 처음에는 키 (즉, SalesDescription 값). 더블 SalesDescription은 서로를 덮어되며, 이후 당신은 그것을 다시 변환 :

<?php 

$tableB = array(....) 

$temp = array(); 
foreach($tableB as $value) { 
    $temp[$value['SalesDescription']] = $value; 
} 
$tableB = array(); 
foreach($temp as $value) { 
    $tableB[] = $value; 
} 

// Now $tableB has only unique SalesDescription's! 
+0

Michiel, 답장을 보내 주셔서 감사합니다.하지만 테이블 A와 테이블 B의 값을 [SalesDescription] 필드를 비교/검색하고 싶습니다. 일치하는 것이 있으면 그것을 건너 뛰고 다음 검색/비교를 수행하지만, 나는 당신이 생각하기에 테이블 B에서만 [SalesDescription] 필드를 비교할 것입니다. 저는 PHP 스크립트를 매 10 분마다 실행하여 테이블 B의 새로운 레코드를 A에 추가하려고합니다. – KGK

+0

아, 그래도 SalesDescription 필드 만 비교하고 계십니까? 또는 고유 한 행을 만드는 더 많은 필드가 있습니까? –

+0

다시 한 번 감사드립니다. Michiel, yes는 더 많은 필드가 될 것이지만 지금은 SalesDescription 필드로 테스트하고 싶습니다. – KGK

관련 문제