2013-02-27 2 views
0

데이터베이스에서 반환 된 값이 2 x 2 차원 배열입니다.2 개의 배열을 병합하는 PHP

현재 나는 foreach 루프를하고 배열에 따라 별도의 테이블에 반환 된 값을 걸었습니다 :

예 :

<table> 
    <tr> 
     <td>Auto Bavaria Midrand BMW</td> 
     <td>63</td> 
     <td>39</td> 
    </tr> 
    ... 
</table> 
<table> 
<tr> 
    <td>Auto Bavaria Midrand BMW</td> 
    <td>40</td> 
    <td>15</td> 
    ... 
</tr> 
</table> 

그러나 나는 단지 1이 형식의 값을 반환해야 테이블 : 배열의 필요한 비트를 병합 할 수 있습니다 배열 기능이있는 경우

<table> 
    <tr> 
    <td>Auto Bavaria Midrand BMW</td> 
    //the name of the record does not need to be repeated, only the values 
    <td>63</td> 
    <td>39</td> 
    <td>40</td> //values from 2nd array 
    <td>15</td> // values from 2nd array 
    </tr> 
     ...//next record set 
</table> 

Array 
(
    [0] => Array 
     (
      [DealerName] => Auto Bavaria Midrand BMW 
      [dealersContacted] => 63 
      [DealerContact_Y] => 39 
      [DealerContact_N] => 15 
      [DealerShipId] => 21730 
      [DataId] => 23527 
     ) 
    //extra returned records 
) 

Array 
(
    [0] => Array 
     (
      [DealerName] => Auto Bavaria Midrand BMW 
      [dealersContacted] => 65 
      [DealerContact_Y] => 40 
      [DealerContact_N] => 15 
      [DealerShipId] => 21730 
      [DataId] => 23527 
     ) 

    //extra returned records 
) 

나는 그것의 PHP 측을 할 수있는, 내 질문은? 나는 수색을하고 점점 더 혼란스러워졌다.

+0

그가주는 두 가지 예가 다른 것으로 생각됩니다. 그리고 네, 배열을 통해 루프해야합니다 - 마법의 inbuilt 함수가 없습니다. – zaf

답변

0

데이터베이스에서 가져올 때 배열을 변경해야하므로 의미없는 숫자 인덱스 대신 의미있는 키를 얻을 수 있습니다. 위의 예에서는 DealerName을 키로 사용하려고합니다. 그렇게하면 항목을 검색 할 때 해당 항목을 적절한 위치에 추가하기 만하면됩니다. 예 :

while($rows = fetch_from_db($res)) { 
    $output[$rows['DealerName']]['dealersContacted'] = $rows['dealersContacted']; 
    $output[$rows['DealerName']]['DealerContact_Y'] = $rows['DealerContact_Y']; 
    // Add more keys here 
} 

그런 식으로 두 결과 집합을 모두 검색하면 나머지 배열이 하나만 남습니다. 또한 예를 들어 딜러와 같은 이중 인덱스를 처리하는 방법을 계획해야합니다.

+0

감사합니다. 이것은 많은 의미를 갖습니다. – user1882752

관련 문제