2015-01-08 2 views
3

Как назначить двух таблиц в один массив, а затем откройте его с петлей Еогеасп:Присвоить две таблицы в массив PHP и отображать массив

TABLE: 1 

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

TABLE: 2 

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

я пытался до сих пор, как:

$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 
    } 

Пожалуйста, предложите?

+0

выберите PCODE, скорость из table1 союза выберите PCODE, стоимость от table2 –

+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

изменить SQL, как этот

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

Если вы не можете изменить 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); 
Смежные вопросы