PHP - 表中的2个关联数组

时间:2014-01-29 15:22:06

标签: php mysql arrays

我有一个SELECT STATEMENT,返回3个值:Id,titel,erscheinungsdatum。 我正在获取名为$ filme和$ datum的2个数组中的值。

一切都很好,但我希望一个表中的两个关联数组作为输出。

$query->bind_result($id, $titel, $date);
$query->execute();

while($query->fetch()) {

    $filme[$id] = $titel;
    $datum[$id] = $date;
}
if(!empty($filme) && !empty($datum)) {

    echo "

    <table border='3'>
    <th>Filmtitel</th>
    <th>ErscheinungsDatum</th>
    ";


    foreach($filme as $key => $value) {

        echo "<tr>";
        echo "<td>$value</td>";
        echo "</tr>";
    }

    foreach($datum as $key => $value) {

        echo "<tr>";
        echo "<td>$value</td>";
        echo "</tr>";
    }

    echo "

    </table>
    ";
}

我尝试过双foreach循环,merge_function等等......

3 个答案:

答案 0 :(得分:3)

我认为您要做的是在一行中同时包含两个值(来自$datum$filme)。

所以,在那一刻,您将每个值输出到单独一行的列中。

您需要在一个表行中输出两个数组的值,以实现所需的输出。

foreach($filme as $key => $value) {
    echo "<tr>";
    echo "<td>$value</td>";
    echo "<td>" . $datum[$key] . "</td>";
    echo "</tr>";
}

修改作为附注,您需要将<th></th>标记包装在<thead><tr></tr></thead>

答案 1 :(得分:1)

您是否必须将结果存储在两个关联数组中,或者您需要的是最终表?

如果您不需要数组,只需在while($query->fetch())

中构建表

答案 2 :(得分:1)

我会使用一个二维数组,构造如下:

while($query->fetch()) {
    // I suppose some processing is done here...
    $filme[$id]['titel'] = $titel;
    $filme[$id]['date'] = $date;
}

可以像这样输出:

foreach($filme as $key => $value) {
    echo "<tr>";
    printf("<td>%s</td><td>%s</td>",$value['titel'],$value['date']);
    echo "</tr>";
}

如果没有后处理/中间处理,@ danmullen的建议也应该有用。