【问题标题】:while loop into in arraywhile 循环进入数组
【发布时间】:2013-04-01 16:13:40
【问题描述】:

我想要做的是从 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';}

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

任何帮助都会很棒。

【问题讨论】:

  • 你的sql语句是什么样的?第一个猜测是 $query['wins'] 应该是 $row['wins'] ,与损失相同。它当前显示什么?你能把摘录贴出来吗?
  • 有什么问题?看来您已经获得了所需的所有代码。
  • 对不起,我写错了并更新了它......我只想要数组中团队的胜利和失败。现在在熊旁边它显示熊 (42-24) (55-23) (32-21)...我只想要与团队一起使用的那个。

标签: php arrays while-loop


【解决方案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)

【讨论】:

  • 这对我有用,也是最简单的。谢谢@jeff。
【解决方案2】:

最好的办法是将它们存储在关联数组中。

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

希望对你有帮助

【讨论】:

    【解决方案3】:

    您的主要问题是您目前将$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
    

    【讨论】:

      【解决方案4】:

      使用关联数组:

      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'];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-08
        • 2012-08-26
        • 2021-03-26
        • 2016-04-21
        • 2020-10-28
        • 1970-01-01
        • 2014-12-01
        相关资源
        最近更新 更多