首页 > 解决方案 > 在具有相同价值的相同 div 产品中显示 smarty

问题描述

我有 4 种产品,其中 2 种具有相同的order_id.

这是我的聪明输出$orders

Array (8) 
0 => Array (11) 
  id => "85" 
  order_id => "1" 
  user_email => "jeff@gmail.com" 
  total_price => "2000" 
  status => "Pending payment" 
  order_option_id => "1" 
  image => "Luxury-Sofa-for-Main-Room-at-Home-Design-Luxury-with-Stunning-Outdoor.jpg" 
  title => "ruyrytur" 
  variants => "" 
  quantity => "1" 
  unit_price => "123.00" 
1 => Array (11) 
  id => "98" 
  order_id => "2" 
  user_email => "jeff@gmail.com" 
  total_price => "20000" 
  status => "Pending payment" 
  order_option_id => "2" 
  image => "Modern-Green-Home-Architecture-house-plans.jpg" 
  title => "Vewlix 1080p (black and white)" 
  variants => "Panel 2 players (+50 euros) Red backlight (+100 euros) Screen 1440p (+400 eur..." 
  quantity => "3" 
  unit_price => "2680.00" 
2 => Array (11) 
  id => "99" 
  order_id => "2" 
  user_email => "jeff@gmail.com" 
  total_price => "20000" 
  status => "Pending payment" 
  order_option_id => "2" 
  image => "amazing-modern-villa-Freshome-02.jpg" 
  title => "Vewlix 1080p (red and white)" 
  variants => "Panel 2 players (+50 euros)" 
  quantity => "1" 
  unit_price => "2000.00" 
3 => Array (11) 
  id => "102" 
  order_id => "4" 
  user_email => "jeff@gmail.com" 
  total_price => "2000" 
  status => "1" 
  order_option_id => "4" 
  image => "amazing-modern-villa-Freshome-02.jpg" 
  title => "Vewlix 1080p (red and white)" 
  variants => "Panel 2 players (+50 euros)" 
  quantity => "1" 
  unit_price => "2000.00"

我尝试了许多 foreach 以在同一个 div 中“合并”具有相同 order_id 的产品但没有成功

这是我想要的输出:

<div> 
  id 85 
</div> 
<div> 
  id 98 
  id 99 
</div> 
<div> 
  id 102 
</div>

我的 foreach (简单地循环到结果中)

            {foreach $orders as $orderdisplay}

                    <table class="table" style="border: 1px solid black;">
                        <tbody>
                            <tr>
                                <td></td>
                                <td>ITEM</td>
                                <td>QUANTITY</td>
                                <td>PRICE</td>
                                <td>STATUS</td>
                            </tr> 
                            <tr>
                                <td>
                                </td>
                                <td>{$orderdisplay.title}<br />{$orderdisplay.variants}</td>
                                <td>{$orderdisplay.quantity}</td>
                                <td>{$orderdisplay.total_price}</td>
                                <td>{$orderdisplay.status}</td>
                            </tr>

                        </tbody>
                    </table>
                    <span>{$orderdisplay.total_price}</span>
            {/foreach}

标签: phpsmarty

解决方案


bsmither 在 smarty 论坛上给出的解决方案:

{foreach $orders as $n} 
    {$OID[{$n.order_id}][] = $n} 
{/foreach} 

{foreach $OID as $o_id => $orders4OrderID} 
   <div> 
      {foreach $orders4OrderID as $order} 
         product id {$order.id} 
      {/foreach} 
   </div> 
{/foreach}

推荐阅读