2017-05-30 20 views
0

私は多次元配列を持ち、foreach()をメニューとして表示します。しかし、最後の要素だけが表示されます。誰かがなぜこれが起こっているのか、どうやって解決するのか説明できますか?多次元配列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) 
) 

のみ例3が表示されます。

(私は他の理由のために別のIDを使用して、私は今、動的メニューの操作を行いますが、ではないでしょう。)

答えて

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);

+0

ありがとう:Dシンプルですが、私は昨日までにPHPをコードします。 –