2

我想做的是从一个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

4 回答 4

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)
于 2013-04-10T01:27:46.137 回答
0

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

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

希望这可以帮助

于 2013-04-10T01:28:10.633 回答
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
于 2013-04-10T01:28:30.593 回答
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'];
}
于 2013-04-10T01:30:49.773 回答