多维数组foreach函数

时间:2017-05-30 01:09:44

标签: php arrays loops multidimensional-array echo

我有一个多维数组,我使用foreach()将其显示为菜单。但只显示最后一个元素。有人能解释为什么会发生这种情况以及如何解决这个问题吗?

{$sql = $mysqli->query("SELECT ID, Nome, ID2 FROM tipo WHERE Tipo2 IS NULL ORDER by ID, ID2");

$result2 = $sql->fetch_all(MYSQLI_ASSOC);

print_r ($result2);
mysqli_free_result($sql);
 }

?>

<ul>

<?php

{reset($result2);
extract ($result2);

foreach ($result2 as $row);

echo "<li><a href=\"/{$row['Nome']}/\">{$row['Nome']}</a></li>";
} ?>
</ul>

阵列:

Array (
    [0] => Array ( [ID] => 1 [Nome] => Example1 [ID2] => 1 )
    [1] => Array ( [ID] => 2 [Nome] => Example2 [ID2] => 2 )
    [2] => Array ( [ID] => 3 [Nome] => Example3 [ID2] => 3 )
) 

仅显示Example3。

(我出于其他原因使用不同的ID,我会做一个动态菜单,但现在不行。)

1 个答案:

答案 0 :(得分:1)

那是因为foreach ($result2 as $row);迭代整个数组而不被告知做任何事情。

然后当它完成时,你回显最后一个迭代的行。

只需更改为:

foreach ($result2 as $row){
    echo "<li><a href=\"/{$row['Nome']}/\">{$row['Nome']}</a></li>";
}

P.S。摆脱:{reset($result2);extract ($result2);