PHP计算来自foreach循环的行

时间:2014-08-17 23:08:23

标签: php foreach count

我在PHP中使用“foreach”循环来从我的MySQL数据创建表

我想要实现的是计算循环返回的行数

循环为每个“机器”创建新表,并将“契约”作为新行填充,但每当我尝试计算行时,它会从所有表中返回计数,而不是只返回一个。

这是我的代码:

<?php

foreach ($this->datatitle as $head) {

    $cards = 1;

    echo '<table id="cards" class="cards">';

    echo '<tr>';

    foreach ($this->datacount as $datacount) {

        echo '<td>' . $head->machine_text . ' ' . $head->machine_name . ' [' . $datacount->count . ']</td>';

    }

    echo '</tr>';
    echo '<tr>';
    echo '<td>';
    echo '<ul id="sortable" class="connectedSortable">';

    foreach ($this->data as $body) {

        if ($head->machine_text == $body->machine_text) {

            echo '<li class="ui-state-default">Auftrag: ' . $body->aufnr;
            echo '<br>' . $body->matnr . ' ' . $body->matxt;
            echo '<br>Menge ' . $body->gamng;
            echo '<br><br>';
            echo 'Start: ' . $body->gstrp;
            echo '<br>Ende: ' . $body->ssavd . '</li>';

            if ($cards++ == 10) {
                break;
            }

        } else {

        }

    }

    echo '</td>';
    echo '</tr>';
    echo '</table>';

}

?>

$ cards定义了想要显示的行数,但我想计算未显示的行数。

tl; dr 使用foreach创建表,想要计算单个表中的行

2 个答案:

答案 0 :(得分:2)

在你的foreach循环之上,定义一个计数器。

$ count = 0

然后在你的foreach循环中:

$ count = $ count + 1

在你的foreach循环之后:

Echo $ count

示例:

<?php

foreach ($this->datatitle as $head) {

$count = 0;
$cards = 1;

echo '<table id="cards" class="cards">';

echo '<tr>';

foreach ($this->datacount as $datacount) {
    $count = $count + 1;
    echo '<td>' . $head->machine_text . ' ' . $head->machine_name . ' [' . $datacount->count . ']</td>';

}

echo '</tr>';
echo '<tr>';
echo '<td>';
echo '<ul id="sortable" class="connectedSortable">';

foreach ($this->data as $body) {

    if ($head->machine_text == $body->machine_text) {

        echo '<li class="ui-state-default">Auftrag: ' . $body->aufnr;
        echo '<br>' . $body->matnr . ' ' . $body->matxt;
        echo '<br>Menge ' . $body->gamng;
        echo '<br><br>';
        echo 'Start: ' . $body->gstrp;
        echo '<br>Ende: ' . $body->ssavd . '</li>';

        if ($cards++ == 10) {
            break;
        }

    } else {

    }

}

echo '</td>';
echo '</tr>';
echo '</table>';
echo $count;
}
?>

答案 1 :(得分:0)

我认为这会有所帮助。

<?php

$count = 0;

foreach( $names as $name){

$count = $count + 1;

echo  "<td>".$count. "</td>

      "<td>".$name. "</td>";
}

?>