2012-04-26 45 views
0
<?php 
foreach($menu_names as $menu_name){ 
$i=0; 
echo "<li><a href='?subj=" .$subjects_ids[$i]. " '>".$menu_name."</a></li>"; 
$i++; 
} 
?> 

$subjects_ids是含有的123三個值的陣列。但是,這裏以HTML格式創建的鏈接僅包含?subj=3,全部爲$menu_name。第一個$menu_name應該有subj=1,第二個應該有2,第三個應該有3什麼在下面的代碼(PHP)的誤差

+3

加上'$ I = 0' 'forloop'之前 – Rafee 2012-04-26 13:24:09

+0

我檢查了其他循環中的$ subjects_ids數組,它分別回顯所有三個值1,2和3。但不知道這裏發生了什麼。 – yusufiqbalpk 2012-04-26 13:24:41

+0

您是否嘗試了以下解決方案。 – Rafee 2012-04-26 13:25:35

回答

2
$i=0; 
foreach($menu_names as $menu_name){ 
    echo "<li><a href='?subj=" .$subjects_ids[$i]. " '>".$menu_name."</a></li>"; 
    $i++; 
} 

地方$i=0;外循環。

說明:

當您將foreach循環內$i變量,並設置它的價值0。每次數據循環時,$i的值將被設置爲$ i = 0;因此你應該把它放在foreach循環之外。

+0

您正在第二次回答我的問題。謝謝 – yusufiqbalpk 2012-04-26 13:32:46

+0

我考慮過了。 – yusufiqbalpk 2012-04-26 13:41:03

0

您在每次迭代中初始化$ i var,以便它始終指向索引爲0的元素。 只是刪除

$i=0; 
2

您正在循環中每次設置$ i = 0。

$i=0; 
foreach($menu_names as $menu_name){ 
    echo "<li><a href='?subj=" .$subjects_ids[$i]. " '>".$menu_name."</a></li>"; 
    $i++; 
} 

是一個更好的方法。

1
<?php 
$i=0; 
foreach($menu_names as $menu_name){ 
echo "<li><a href='?subj=" .$subjects_ids[$i]. " '>".$menu_name."</a></li>"; 
$i++; 
} 
?> 

你初始化循環應該在循環開始前被初始化裏面的$ I的變量,因此,其價值仍然相同,並添加標識3全部標籤