0

我必须按位置、提供者或资产描述排序的“详细报告”,尽管我得到了正确的结果,但我想显示类似的结果

位置 1:

此处的表格,其中包含位于该位置的资产

位置 2:

包含位于此位置的资产的表...

与提供者和描述相同...

我的 PHP 和其他语言知识有限。所以,我想做一些类似的事情......

获取数组(完整数组而不仅仅是一行),然后检查位置array[i]是否等于array[i+1]然后打印<td>带有行数据的 a 否则结束该表,然后创建一个新的

地点:

最后是另一个包含与该位置匹配的行的表...

我怎么能在 PHP 中做到这一点?

例子:

是我目前拥有的

就是我想做的

这就是我在 PHP 中所做的

<?php

echo "<table>
        <thead>
            <tr>
                <th></th>
                <th>Ubicaci&oacute;n</th>
                <th>C&oacute;digo</th>
                <th>Descripci&oacute;n</th>
                <th>Costo Adquisici&oacute;n</th>
                <th>Saldo a Depreciar de Activos</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <tr>";
while($row = odbc_fetch_array($result)){
    echo"<td></td>
        <td><b>".$row["Ubicacion_actual"]."</b></td>
        <td>".$row["Activo"]."</td>
        <td>".$row["Descripcion"]."</td>
        <td>".number_format($row["Costo_Adquisicion"],4)."</td>
        <td>".number_format($row["Saldo_sin_depreciar"],4)."</td>
        <td></td>

        </tr>"; 
}
echo "</tbody>

    </table>";
odbc_close($dbhandle);
?>
4

1 回答 1

1

首先你应该把所有的数据放到一个本地数组中,然后使用本地数组来处理它。

所以你可以有:

$theArray = array(); //Array to hold data
$headerIds = array(); //Array to hold unique id of the records
while($row = odbc_fetch_array($result)){
    array_push($theArray, $row);
    if(!in_array($row["Ubicacion_actual"], $headerIds))
    {
         array_push($headerIds, $row["Ubicacion_actual"]);
    }

}

odbc_close($dbhandle);

foreach($headerIds as $id)
{
    //Print the header info
    //...

    //Loop through each item in your data array until its id matches the header id
    foreach($theArray as $dataItem)
    {
        if($dataItem["Ubicacion_actual"] == $id) //This line item has the same id as the header
        {
            //Display the table row data
        }
    }
}
于 2013-04-25T06:39:37.363 回答