while循环进入数组

时间:2013-04-10 01:22:58

标签: php arrays while-loop

我想要做的是从while循环中收集数据,将其存储到变量中。然后在我的代码中,我看到一些变量是否等于数组中的一个值,然后回显出我从while循环获得的另外两个列值,但是等于值来自的行。我尝试了很多不同的东西,而且非常接近,但却无法准确地得到它。

     while($row = mysql_fetch_assoc($query)){

$team[] .= "{$row['team']}";
$winslosses .= "({$row['wins']} - {$row['losses']})";

}
这会返回类似

的内容
      $team = (bears, badgers, wildcats)
      $winslosses = ((42-24), (55-23), (32-21))

然后在我的代码中,我想看看它是否等于数组中的值,然后回显$ winslosses。

  if(in_array(bears, $team) ) {echo '$winslosses';}

这显示了每支球队的所有胜负。我希望它只显示熊的记录。

任何帮助都会很棒。

4 个答案:

答案 0 :(得分:1)

您可以使用array_search()获取数组中项目的索引。然后,您可以在查询$ winlosses时使用该索引:

$team = array(bears, badgers, wildcats);
$winslosses = array("(42-24)", "(55-23)", "(32-21)");

$key=array_search(bears, $team);
echo $winslosses[$key]

结果:

(42-24)

答案 1 :(得分:0)

您最好的选择是将它们存储在关联数组中。

while($row = mysql_fetch_assoc($query)){
    $winslosses[$row['team']] = "({$row['wins']} - {$row['losses']})";
}

希望这有帮助

答案 2 :(得分:0)

你的主要问题是你现在有$winslosses作为字符串,而不是数组,所以你不能轻易拿出一个团队的赢/输记录。

有几种方法可以做到这一点。对我来说最简单的一个就是把它作为一个阵列放在一起。

像...一样的东西。

while($row = mysql_fetch_assoc($query)){
    $teams[$row['team']] = "({$row['wins']} - {$row['losses']})";
}

然后在......

if(array_key_exists("bears",$teams)) {
    echo $teams["bears"];
}

或者甚至更好,将赢/输存储为子数组,因此您可以根据需要格式化结构化数据。

while($row = mysql_fetch_assoc($query)){
    $teams[$row['team']] = array("wins" => $row['wins'], "losses" => $row['losses']);
}

echo $teams['bears']['wins']; // for example

答案 3 :(得分:0)

使用关联数组:

while($row = mysql_fetch_assoc($query)){

  $team[] = {$row['team']};
  $winslosses[$row['team']] = "{$row['wins']} - {$row['losses']}";

}

然后像这样检索它:

 if(in_array(bears, $team) ) {
         echo $winslosses['bears'];
   }

事实上,如果你不需要单独数组中团队的名字,你可以只使用一个关联数组然后检索它。

if (array_key_exists('bears', $winslosses)) {
    echo $winslosses['bears'];
}