Php Foreach环路回波

Php Foreach环路回波,php,foreach,Php,Foreach,最后一个foreach循环似乎没有响应我想要的列表,它没有打印任何内容。我怎样才能解决这个问题?我知道事情变得很复杂,但如果有任何帮助,我们将不胜感激 $allTroopsList = array(); $allMissionsList = array(); while ($mytroops = $alltroops->fetch_assoc()) { $allTroopsList []= $mytroops; } while ($mymissions = $allmissio

最后一个foreach循环似乎没有响应我想要的列表,它没有打印任何内容。我怎样才能解决这个问题?我知道事情变得很复杂,但如果有任何帮助,我们将不胜感激

$allTroopsList = array();
$allMissionsList = array();
while ($mytroops = $alltroops->fetch_assoc()) 
{
    $allTroopsList []= $mytroops;
}

while ($mymissions = $allmissions->fetch_assoc()) 
{
    $allMissionsList []= $mymissions;
}

while($userintroop = $allUsersintroops->fetch_assoc()) 
{
    if($userintroop['userid'] == $_SESSION['userid']) 
    {
        echo "<ul class='troop'>";   
        echo "<li>" . $userintroop['troopid'].  " </li>";
        foreach($allTroopsList as $mytroops) 
        {
            if($userintroop['troopid'] == $mytroops['troopid']) 
            {
                echo "<li> Troop description: " . $mytroops['description'].  " </li>";

                foreach($allMissionsList as $mymissions) 
                {
                    if($mytroops['missionid'] == $mymissions['missionid']) 
                    {   
                        echo "<li> Missionname: " . $mymissions['missionname'].  " </li>";
                        echo "<br/>";
                        echo "</ul>";
                    }
                }
            }
        }
    }   
}           

foreach($allUsers as $myotherusers) 
{
    if($userintroop['userid'] == $myotherusers['userid']) 
    {

        echo "<li> other users: " . $myotherusers['username'].  " </li>";
        echo "<br/>";
    }
}
$allTroopsList=array();
$allMissionsList=array();
而($myforces=$allforces->fetch_assoc())
{
$allTroopsList[]=$My部队;
}
而($mymissions=$allmissions->fetch_assoc())
{
$AllMissionList[]=$mymissions;
}
而($userintroop=$allUsersintroops->fetch_assoc())
{
if($userintroop['userid']=$\u会话['userid'])
{
回声“
    ”; echo“
  • ”$userintroop['troupid']。“
  • ”; foreach($myforce的所有部队列表) { 如果($userintroop['troopid']=$MyForems['troopid'])) { echo“
  • 部队描述:“.myforces['description']”“
  • ”; foreach($AllMissions作为$mymissions列出) { 如果($myforces['missionid']=$mymissions['missionid'])) { echo“
  • 任务名:“..mymissions['Missionname']”“
  • ”; 回声“
    ”; 回声“
”; } } } } } } foreach($myotherusers作为诱惑者) { 如果($userintroop['userid']==$myotherusers['userid'])) { echo“
  • 其他用户:“.$myotherusers['username']”“
  • ”; 回声“
    ”; } }
    此行:

    while($userintroop = $allUsersintroops->fetch_assoc()) 
    
    是从数据库中获取结果,对吗?这意味着在某个时刻,要获取的行已经用完,$UserIntrop将变成布尔值FALSE

    然后你试着去做

    if($userintroop['userid'] == $myotherusers['userid']) 
    
    这在两个级别上是错误的-$userintrop此时将不是数组,因此它永远不会有
    ['userid']
    参数。而且,由于它是一个失败的获取操作的结果,因此除了FALSE之外,永远不会有任何值


    因此,最后一个循环确实执行,但不会产生任何结果,因为产生输出的条件实际上是不可能满足的。

    您期望的输出是什么,您得到的输出是什么?您可能还需要提供输入的示例。当您嵌套这么多层循环时,是时候重写代码了。您应该创建一个更简单的版本,然后从那里重新构建复杂性。关于
    $allTroopsList[]=$mytours。它不应该是
    $allTroopsList[]=$mycounters?不确定这是否是一个问题,但是…在上次foreach之前尝试调试$mymissions。让我知道这个数组的输出。