2012-10-11 124 views
1

array這是我的代碼:增加值到while循環壓倒一切的舊值

if (0 < $matches->total()) { 
    while ($matches->fetch()) { 
     ?> 
      <?php $ma1_winner  = $matches->display('winner'); ?> 
      <?php $ma1_team_1  = $matches->display('team_1'); ?> 
      <?php $matches_array_1['winner'] = $ma1_winner; ?> 
       <?php $matches_array_1['team1'] = $ma1_team_1; ?> 
      <?php 
        } // end of while loop 
      } // end of if any exists 
      ?> 


      <?php var_dump($matches_array_1); ?> 
      <?php die(); ?> 

但它的var_dump只有一個贏家和團隊的15個從我的數據庫輸出。如何解決它?

+0

對於整個代碼塊,您只需要/應該只有一對「」開放/關閉對。 –

+0

是的,我知道php標籤不是問題。 – Derfder

回答

1

對於每次迭代,添加一個新的數組,其中winnerteam作爲其鍵。結果將是一個包含所有值的2維數組。

while ($matches->fetch() { 
    // Append a new array via [] = array() 
    // for every loop iteration 
    $matches_array_1[] = array(
    'winner'=>$matches->display('winner'), 
    'team'=>$matches->display('team') 
); 
} 
var_dump($matches_array_1); 

否則,你只是覆蓋相同的兩個按鍵在每個迭代上winnerteam

+0

啊哈,我會試試看,並讓你知道它是否工作;) – Derfder

+0

工作!太好了,非常感謝。我可以問你爲什麼我的代碼不工作嗎? – Derfder

+0

@Derfder你沒有工作,因爲在每次循環迭代中,你只是將一維數組的贏家,團隊設置爲當前循環的獲取值。一遍又一遍,你重寫了相同的兩個數組鍵。 –

1

構建數組時,每個匹配都需要某種唯一的匹配標識符。例如:

<? 
if (0 < $matches->total()) 
{ 
    while ($matches->fetch()) 
    { 
     $matches_array_1[$matches->display('match_id')]['winner'] = $matches->display('winner'); 
     $matches_array_1[$matches->display('match_id')]['team1'] = $matches->display('team_1'); 
    } // end of while loop 
} // end of if any exists 
var_dump($matches_array_1); 
die(); 
?>