1

これは私のコードです:

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 ではなく 1 つの勝者とチームのみが出力されます。修正方法は?

4

2 に答える 2

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);

そうしないと、反復ごとに同じ 2 つのキーwinnerを上書きするだけです。team

于 2012-10-11T18:07:31.283 に答える
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();
?>
于 2012-10-11T18:11:04.400 に答える