用公共值分隔数组

  • 本文关键字:分隔 数组 php
  • 更新时间 :
  • 英文 :


我有一个数组,它包含订单和这些订单上的项目。在数组中,是否有方法将tbody或表中的订单号"分组"?

这是我的循环,它输出到一个表:

foreach ($order as $resultno => $result_array) {
echo '<tr>';
echo '<td>' . $result_array['Order'] . '</td>';
echo '<td>' . $result_array['Vendor'] . '</td>';
echo '<td>' . $result_array['Style'] . '</td>';
echo '<td>' . $result_array['Description'] . '</td>';
echo '<td>' . $result_array['ItemNo'] . '</td>';
echo '<td>' . $result_array['UPC'] . '</td>';
echo '<td>' . $result_array['Size'] . '</td>';
echo '<td>' . $result_array['Price'] . '</td>';
echo '<td>' . $result_array['Quantity'] . '</td>';
echo '<td>' . $result_array['Department'] . '</td>';
echo '<td>' . $result_array['Category'] . '</td>';
echo '</tr>';
}

理想情况下,我希望每个订单号都有一个单独的tbody。如果该订单有多个项目,那么它们都在同一个tbody上。或者订单号之间至少有一个空行。

我知道如何使用数据库来做到这一点,但如果有其他方法,我不希望输入数据只是为了查询出来。

谢谢!

以下是实现这一目标的方法。

$orders = [
[
'order_id' => 1,
'name' => "temp name",
],
[
'order_id' => 2,
'name' => "1 temp name",
],
[
'order_id' => 1,
'name' => "1 name",
],
[
'order_id' => 3,
'name' => "1 name",
],
];

$order_ids = array_column($orders, 'order_id');
array_multisort($order_ids, SORT_ASC, $orders);
$count = count($orders);
$i = 0;
foreach($orders as $key=>$order){
print_r($order);
$i++;
if($count != $i && $order['order_id'] != $orders[$i]['order_id']){
echo "-------------------- rn";
}
}

最新更新