PHP Loop Вопрос - PullRequest
       19

PHP Loop Вопрос

2 голосов
/ 14 января 2010

эхо ""; while (list ($ key, $ val) = each ($ users)) { echo "$ val \ n \ n"; } эхо ""; while (list ($ key2, $ val2) = each ($ enable)) { echo "$ val2 \ n \ n"; } echo "";

Я хочу отформатировать это в таблицу рядом, где должно быть

$val $val2

В настоящее время его в

$val
$val2

Что я должен изменить, чтобы добиться этого?

Спасибо за вашу помощь.

Ответы [ 6 ]

1 голос
/ 14 января 2010

Если вы хотите отформатировать user / enable в одной строке, а затем user / enable в следующей строке, вам нужно сначала выполнить некоторые операции с массивами, чтобы вы могли получить их в том же цикле.

echo "<table>";
foreach(array_combine($users, $enable) as $u => $e){
   echo "<tr><td>$u</td><td>$e</td></tr>\n\n";
}
echo "</table>";
1 голос
/ 14 января 2010

Мне кажется, я вижу, что ты сейчас пытаешься сделать. Что-то на этот счет?:

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>";
1 голос
/ 14 января 2010

Вам нужно проделать некоторую хитрость, чтобы пройти через оба массива одновременно, поскольку они должны находиться в одной строке:

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>';
1 голос
/ 14 января 2010

Просто сделайте одну while() петлю и повторите <tr><td>val</td><td>val2</td></tr> часть

0 голосов
/ 14 января 2010

хм, вы можете сделать это в цикле 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>";
0 голосов
/ 14 января 2010

Вы можете сжать это в один цикл для оптимальной производительности, предполагая, что ваши ключи являются целыми числами, начиная с 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>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...