2010-01-14 71 views
2

echo「」; while(list($ key,$ val)= each($ users)){ echo「$ val \ n \ n」; } echo「」; (list($ key2,$ val2)= each($ enable)){ echo「$ val2 \ n \ n」; } echo「」;PHP循環問題

我想這種格式與並排表,其中應

$val $val2 

目前其在

$val 
$val2 

我應該怎麼修改來實現這一目標?

謝謝你的協助。

+0

你希望所有在一行上的用戶,然後在下一行上所有的使能?或用戶/啓用一行,然後用戶/啓用下一行? – easement

+0

我的問題是你爲什麼要爲'$ users'和'$ enable'設置兩個單獨的數組?看起來你應該只是有一個多維數組與用戶,無論它們是否啓用... –

回答

1

我想我明白你現在要做的是什麼。事情到這個效果?:

echo "<table>"; 
while (list ($key, $val) = each ($users)) { 
list ($key2, $val2) = each ($enable); 
echo "<tr><td>$val</td>"; 
echo "<td>$val2</td></tr>"; 
} 
echo "</table>"; 
+0

這是一個有點安全: echo「

」; (list($ key,$ val)= each($ users)){ echo「​​$ val」; (list($ key2,$ val2)= each($ enable)) echo「​​$ val2」; echo「」; } echo「
」; –

1

只是要一個while()環和呼應<tr><td>val</td><td>val2</td></tr>部分

+0

聽起來不錯,我在一個for循環 – streetparade

1

您需要在同一時間,通過兩個陣列做一些弄虛作假循環,因爲他們需要在同一行:

echo '<table>'; 
$user_count = count($users); 
$enable_count = count($enable); 
$max = max($user_count, $enable_count); 
for ($i = 0; $i < $max; $i ++) { 
    $val = '&nbsp;'; 
    $val2 = '&nbsp;'; 
    if ($i < $user_count) $val = $users[$i]; 
    if ($i < $enable_count) $val2 = $enable[$enable]; 
    echo "<tr><td>$val</td><td>$val2</td></tr>"; 
} 
echo '</table>'; 
+0

這不會工作,雖然.. –

0

可以凝結成一個圈這個以獲得最佳性能假設你的鍵整數從0開始:

$len = min(count($users), count($enable)); 
if ($len > 0) { 
    echo '<table>'; 
    for ($i = 0; $i < $len; ++$i) { 
     echo '<tr><td>' . $users[$i] . '</td><td>' . $enable[$i] . '</td></tr>'; 
    } 
    echo '</table>'; 
} 
+0

這不會工作,只是$ users和$ enable具有相同的索引或通常不是的鍵,看看我的for循環ist很酷嗎? – streetparade

1

如果你想在一個格式用戶/啓用然後在下一行使用/啓用,你需要先做一些數組工作,這樣你才能使它們在同一個循環中。

echo "<table>"; 
foreach(array_combine($users, $enable) as $u => $e){ 
    echo "<tr><td>$u</td><td>$e</td></tr>\n\n"; 
} 
echo "</table>"; 
0

嗯,你能做到這一點在for循環中,這是聰明的,它是可讀

echo "<table><tr>"; 
for($u=0;$e=0;$u<count($users),$e<count($enable);$i++,$u++) 
{ 
echo "<td>$users[$u]['idntknowthekeysethere']</td></tr>\n\n"; 
echo "<td>$enable[$e]['idntknowthekeysethere']</td></tr>\n\n"; 
} 

echo "</tr></table>";