2010-01-14 8 views
2

echo ""; while (liste ($ key, $ val) = each ($ utilisateurs)) { echo "$ val \ n \ n"; } echo ""; while (list ($ key2, $ val2) = chaque ($ enable)) { echo "$ val2 \ n \ n"; } echo "";PHP Loop Question

Je veux formater cette table en côte à côte où devrait être

$val $val2 

Actuellement son dans

$val 
$val2 

Que dois-je modifier pour y parvenir?

Nous vous remercions de votre aimable assistance.

+0

Vous voulez que tous les utilisateurs sur une ligne, puis toutes les activer sur la ligne suivante? Ou Utilisateur/Activer sur une ligne et ensuite Utilisateur/Activer sur la ligne suivante? – easement

+0

Ma question pour vous est pourquoi auriez-vous deux tableaux séparés pour '$ users' et' $ enable'? Il semble que vous devriez juste avoir un tableau multi-dimensionnel avec l'utilisateur et si oui ou non ils sont activés ... –

Répondre

1

Je pense que je vois ce que vous essayez de faire maintenant. Quelque chose à cet effet ?:

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

Ceci est un peu plus sûr : echo "

"; while (liste ($ key, $ val) = chaque ($ utilisateurs)) { echo ""; si (liste ($ key2, $ val2) = chaque ($ enable)) echo ""; echo ""; } echo "
$ val $ val2
"; –

1

Il suffit de faire une boucle while() et écho à la <tr><td>val</td><td>val2</td></tr> partie

+0

sonne bien je l'ai fait dans un pour la boucle – streetparade

1

Vous devez faire quelques manipulations à boucle à travers les deux tableaux en même temps car ils ont besoin d'être sur la même ligne:

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

cela ne va pas travailler .. –

0

Vous pouvez condenser cela en une seule boucle pour des performances optimales en supposant que vos clés sont des nombres entiers à partir de 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

cela ne fonctionnera pas si ce n'est que les $ users et $ enable ont le même index ou les mêmes touches que d'habitude, jetez un coup d'oeil à ma boucle fort is cool? – streetparade

1

Si vous voulez le format utilisateur/activer sur un line et ensuite user/enable sur la ligne suivante, vous devrez d'abord faire un peu de tableau pour pouvoir les avoir dans la même boucle.

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

hmm, vous pouvez le faire dans une boucle c'est intelligent et est lisible

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