PHP / MySQL的期多维/关联数组2(Php/Mysql Multidemensional/A

2019-10-29 07:24发布

我一直在这个代码了将近一个星期,似乎无法摆脱它。 我是从看起来像这样一个数据库中获取行:

ID | 帐户| 内容| 键入| 数量
1 23494Ë38 10
2 23494ë13 5
3 23494˚F38 7
4 23494ë6 2

我的声明是这样的迄今:

// Make the query:
$qu = "SELECT * FROM log WHERE account='".$account."' ORDER BY timelog DESC $pages->limit"; 
$re = @mysqli_query ($dbc, $qu); // Run the query.

$roarr = array();
while ($row = mysqli_fetch_array($re, MYSQLI_ASSOC)) {
    $roarr[$row['account']][$row['content']][$row['type']] = $row['quantity'];

} // End of WHILE loop.
//print_r($roarr);

echo'
<tr>&nbsp;</tr>
<tr>
    <td align="left"><b>Account</b></td>
    <td align="left"><b>6Kg(E)</b></td>
    <td align="left"><b>13Kg(E)</b></td>
    <td align="left"><b>38Kg(E)</b></td>

    <td align="left"><b>6Kg(F)</b></td>
    <td align="left"><b>13Kg(F)</b></td>
    <td align="left"><b>38Kg(F)</b></td>
    <td align="left"><b>Date Created</b></td>
</tr>
';

$dataarr = array();
foreach($roarr as $account => $dataarr) {
    $bg = ($bg=='#eeeeee' ? '#ffffff' : '#eeeeee');

    echo '
      <tr bgcolor="' . $bg . '">
        <td align="left">'. $account .'</td>
     ';

    foreach($dataarr as $content => $data) {
         if($content == "E") {
              echo '<td align="left">', (isset($data['6']) ? $data['6'] : '&nbsp;'), '</td>';
               echo '<td align="left">', (isset($data['13']) ? $data['13'] : '&nbsp;'), '</td>';
               echo '<td align="left">', (isset($data['38']) ? $data['38'] : '&nbsp;'), '</td>';
         } // Then I GET STUCK on the Else Part! HOW Do I display $content == "F" data on the right hand side?
    } //End Foreach
} //End Foreach

这就是我打算如何显示我的结果:

帐号| 6KG(E)| 13KG(E)| 38KG(E)| 6KG(F)| 13KG(F)| 38KG(F)| 日期

23494 5 10 2 7

,但是我很坚持。

问:我如何能安排这样的形式获取的结果?

编辑:我已经更改的数据库,从而更专注于问题:由于查询每个帐户获取,只有一个帐户显示在上面的数据库行。

这是通过$ roarr产生的数组:

阵列([23494] =>数组([F] =>数组([6] => 2 [38] => 7)[E] =>数组([38] => 10 [13] => 5)) )

先感谢您

Answer 1:

你需要类似的东西,而不是你的内部foreach循环:

echo '<td align="left">', (isset($dataarr['E']['6']) ? $dataarr['E']['6'] : '&nbsp;'), '</td>';
echo '<td align="left">', (isset($dataarr['E']['13']) ? $dataarr['E']['13'] : '&nbsp;'), '</td>';
echo '<td align="left">', (isset($dataarr['E']['38']) ? $dataarr['E']['38'] : '&nbsp;'), '</td>';
echo '<td align="left">', (isset($dataarr['F']['6']) ? $dataarr['F']['6'] : '&nbsp;'), '</td>';
echo '<td align="left">', (isset($dataarr['F']['13']) ? $dataarr['F']['13'] : '&nbsp;'), '</td>';
echo '<td align="left">', (isset($dataarr['F']['38']) ? $dataarr['F']['38'] : '&nbsp;'), '</td>';


文章来源: Php/Mysql Multidemensional/Associative Arrays 2