2015-01-08 3 views
3

배열을 표시하고 foreach 루프로 표시 :지정 두 테이블과 하나의 배열에 두 개의 테이블을 할당하는 방법

$final=array(); 
foreach($table1 as $t1) 
     $final [$t1->code][0] = $t1->rate; 

    foreach($table2 as $t2) 
     $final [$t2->code][1] = $t2->sales; 




    foreach ($final as $c=>$v){ 
     echo "$c $v[0] $v[1]" . "\n"; \\error 
    } 
: 나는대로 지금까지 시도

TABLE: 1 

pcode  rate 
------------------------------ 
aaa   10 
bbb   5 
ccc   4 

TABLE: 2 

pcode  sales 
------------------------------ 
aaa   250 
bbb   100 
ccc   40 

제안 해주세요?

+0

선택 PCODE, 표 1 조합을 선택 PCODE에서 속도, 표 2 –

+0

PHP에 알려 주시기 바랍니다에서 속도? – NKR

답변

0
$final=array(); 
    foreach($table1 as $t1) 
      $final [$t1->code]['rate'] = $t1->rate; 

     foreach($table2 as $t2) 
      $final [$t2->code]['sale'] = $t2->sales; 
$table='<table><tr> 
<td>name</td> 
<td>Sale</td> 
<td>Purcahse</td> 
</tr>'; 


    foreach ($final as $c=>$v){ 
$table.='<tr> 
<td>'.$c.'</td> 
<td>'.((isset($v['rate']))?$v['rate']:'').'</td> 
<td>'.((isset($v['sale']))?$v['sale']:'').'</td> 
</tr>'; 

    } 
$table.='</table>'; 
1

변화는

SELECT t1.pcode, t1.rate, t2.sales FROM table1 as t1 INNER JOIN table2 t2 ON t1.pcode = t2.pcode"

당신은 SQL을 변경할 수없는 경우이

같은 SQL, 더 나은 array_merge_recursive 사용할 수 있습니다.

$tb1 = codeTokey($table1, 'rate'); 
$tb2 = codeTokey($table2, 'sales'); 
//change object to 
function codeToKey($arr, $valkey){ 
    $ret = array(); 
    foreach($arr as $a){ 
     $ret[$a->code] = $a->$valkey; 
    } 
    return $ret; 
} 

$fin = array_merge_recursive($tb1, $tb2); 
관련 문제