PHP - Value for each


PHP - Value for each

你好,我有一个问题:我想让这两个数组的表。在第一列中,我想要玩家的名字,第二列是分数,第三列是分数的平均值。我只能得到球员,这是重复的。我不知道该怎么做。我知道foreach中的值是球员,所以我知道它会重复出现,但我怎么解决这个问题呢?

<?php
    $aScore = array (1 => 0, 2 => 20, 3 => 4, 4 => 23, 5 => 5, 6 => 4);
    $aPlayers = array (1 => 'Jansen', 2 => 'Boularus', 3 => 'Rintintin', 4 => 'Chavez', 5 => 'Zomers', 6 => 'Tahamata');
    echo '<table border="1">';
    echo '<tr><td>Player</td><td>Score</td><td>Average score</td></tr>';
    foreach($aPlayer as $key => $value)
    {
        echo '<tr><td>'.$value.'</td><td>'.$value.'</td><td>'.$value.'</td></tr>';
    };
    echo '</table>';

    ?>

试试:

foreach($aPlayers as $key => $value)
{
    echo '<tr><td>'.$value.'</td><td>'. $aScore[$key] .'</td><td>'. $aAverageScore[$key] .'</td></tr>';
}

你的问题中没有$aAverageScore变量,但我认为你会知道在这里应该放什么。

但是,您应该将数据存储在多维关联数组中,如:

$players = array(
  array(
    'name'    => 'Jansen',
    'score'   => 0,
    'average' => 0
  ),
  array(
    'name'    => 'Boularus',
    'score'   => 20,
    'average' => 20
  ),
  // ...
);

并循环使用:

foreach ($players as $player) {
  echo '<tr><td>' . $player['name'] . '</td><td>' . $player['score'] . '</td><td>' . $player['average'] . '</td></tr>';
}

使用简单的for循环代替foreach:

for ($k=1; $k<=count($aPlayer); $k++) {
    echo '<tr><td>'.$aPlayer[$k].'</td><td>'.$aScore[$k].'</td><td></td></tr>';
}