【问题标题】:Print multiple arrays with condition in foreach loop在foreach循环中打印多个带有条件的数组
【发布时间】:2016-06-14 09:33:56
【问题描述】:

您好,当 $aSpelers 的数组 $Posities 为 'verdediger' 时,我需要打印 $aSpelers 和 $aRugnummers 的名称

例如:
Janmaat 7 Verdediger
de Vrij 3 Verdediger

所以数组的第一个值不必打印出来,因为它不是'verdediger'

这是我必须使用的数组

$aSpelers = array('Cilessen', 'Janmaat', 'de Vrij' , 'Vlaar', 'Blind', 'de Jong', 'Sneijder');
$aRugnummers = array(1, 7, 3, 2, 5,8, 10 );
$Posities = array('doel', 'verdediging', 'verdediging', 'verdediging', 'verdediging','middenveld','middenveld'); 

我必须使用 foreach 循环,这是我已经拥有的

foreach()
{

}

【问题讨论】:

  • 你必须使用foreach?为什么?
  • @Andreas 它的练习我需要使用 foreach 循环或 for 循环
  • 'verdediger' 或分配给球员的任何位置在哪里?他们似乎是完全独立的
  • 看到 for 和 foreach 之间有很大的区别。 Foreach 在这种情况下很难,因为另一方面很容易。很容易,你应该自己锻炼
  • 锻炼?在要求我们做作业之前自己尝试一下!从阅读 foreach 的文档开始

标签: php arrays


【解决方案1】:

试试:

for($i = 0;$i<count($aSpelers);$i++) {
  if($Posities[$i] == 'verdediging'){
    echo $aSpelers[$i]." ".$aRugnummers[$i]." ".$Posities[$i];
  }
  echo "<br />";
}

输出:

Janmaat 7 verdediging
de Vrij 3 verdediging
Vlaar 2 verdediging
Blind 5 verdediging

【讨论】:

    【解决方案2】:

    使用 for 循环尝试类似的操作

    for($i=0;$i<count($aSpelers);$i++)
     {
    
       if($Posities[$i] == 'verdediging')
       {
    
       echo $aSpelers[$i].'   '.$aRugnummers[$i].'    '.$Posities.'<br/>';
    
       }
    
     }
    

    【讨论】:

      【解决方案3】:

      如果你需要 foreach

      我假设玩家和他们的位置仅根据他们在数组中的索引进行链接。在这种情况下试试这个:

      $aSpelers = array('Cilessen', 'Janmaat', 'de Vrij' , 'Vlaar', 'Blind', 'de Jong', 'Sneijder');
      $aRugnummers = array(1, 7, 3, 2, 5,8, 10 );
      $Posities = array('doel', 'verdediging', 'verdediging', 'verdediging', 'verdediging','middenveld','middenveld');
      foreach($aSpelers as $key=>$speler) {
          echo $speler.$aRugnummers[$key].$Posities[$key]."<br>";
      }
      

      【讨论】:

        【解决方案4】:
        $aSpelers = array('Cilessen', 'Janmaat', 'de Vrij' , 'Vlaar', 'Blind', 'de Jong', 'Sneijder');
        $aRugnummers = array(1, 7, 3, 2, 5,8, 10 );
        $Posities = array('doel', 'verdediging', 'verdediging', 'verdediging', 'verdediging','middenveld','middenveld');
        
        for ($i = 0; $i < count($aSpelers); $i++) {
            if($Posities[$i] == 'verdediging') {
                echo "{$aSpelers[$i]} {$aRugnummers[$i]} {$Posities[$i]} <br>";
            }
        }
        

        结果:

        Janmaat 7 verdediging
        de Vrij 3 verdediging
        Vlaar 2 verdediging
        Blind 5 verdediging
        

        【讨论】:

        • 他说foreach不是为了
        • @Minzkraut 请看一下他自己的帖子 cmets。 @Andreas Its for a exercise i need to use a foreach loop or a for loop
        • @Andreas 是的,对不起,我的错误。我一开始没看到
        猜你喜欢
        • 2018-09-07
        • 1970-01-01
        • 2013-10-09
        • 2018-03-20
        • 1970-01-01
        • 2017-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多