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