Перейти к содержанию
Официальный форум поддержки Simpla

Smarty обьединение одинаковых позиций


Рекомендуемые сообщения

Как в смарти обьединить одинаковые позииции

 

к примеру имеем

 

 

{foreach $orders as $order}
   <li> {$order->purshares->name}, {$order->purshares->variant_name} - {$order->purshares-> amaunt}</li>
{foreach}
 

 

 

 

результат

 

 

<li>Носки, голубые - 100</li>
<li>Носки, белые - 50</li>
<li>Носки, голубые - 20</li>
 

 

 

 

а хотелось бы

 

 

<li>Носки, голубые - 120</li>
<li>Носки, белые - 50</li>
 

 

 

Ссылка на сообщение
Поделиться на другие сайты


{$arr = []}
{foreach $orders as $order}
{if $order->purshares->variant_name}
{$oname = $order->purshares->variant_name|lower|trim}
{else}
{$oname = 'тут пусто'}
{/if}
{$arr[$oname][] = $order->purshares->amount}
{/foreach}

{foreach key=ogroup item=sumamount from=$arr}
{$sumamounts = '0'}
{foreach key=key item=num from=$sumamount}
{$sumamounts = $sumamounts + $num}
{/foreach}
  • {$order->purshares->name}, {$ogroup} - {$sumamounts}

  • {/foreach}

     

    Ссылка на сообщение
    Поделиться на другие сайты

     

    {$arr = []}
    {foreach $orders as $order}
    	{if $order->purshares->variant_name}
    		{$oname = $order->purshares->variant_name|lower|trim}
    	{else}	
    		{$oname = 'тут пусто'}
    	{/if}
    	{$arr[$oname][] = $order->purshares->amount}
    {/foreach}
    
    {foreach key=ogroup item=sumamount from=$arr}
    	{$sumamounts = '0'}
    	{foreach key=key item=num from=$sumamount}
    		 {$sumamounts = $sumamounts + $num}
    	{/foreach}
    	<li>{$order->purshares->name}, {$ogroup} -  {$sumamounts}</li>
    {/foreach}
    

     

    Если, скажем надо вывести

    <li>Носки, голубые - 10</li>
    <li>Трусы, голубые - 20</li>
    <li>Майки, голубые - 30</li>
    <li>Шапочки, голубые - 40</li>
    

    то выйдет совсем неправильно

    <li>Шапочки, голубые - 100</li>
    
    Ссылка на сообщение
    Поделиться на другие сайты

    А каким образом у вас в заказе один и тот же товар идёт разными позициями?

    Ведь в функционале симплы заложено, что если в корзину добавить товар который там уже есть, то его количество просто увеличится, да и при том механизм добавления в корзину не позволяет добавить один и тот же товар разными позициями.

    Ссылка на сообщение
    Поделиться на другие сайты

    А каким образом у вас в заказе один и тот же товар идёт разными позициями?

     

    Судя по {foreach $orders as $order} в первом посте, речь идет о сводном отчете по НЕСКОЛЬКИМ заказам...

    Ссылка на сообщение
    Поделиться на другие сайты

     

    Судя по {foreach $orders as $order} в первом посте, речь идет о сводном отчете по НЕСКОЛЬКИМ заказам...

    Не обратил внимания. Но не факт, иначе не понимаю зачем это ТС.

    Ссылка на сообщение
    Поделиться на другие сайты

    Не обратил внимания. Но не факт, иначе не понимаю зачем это ТС.

     

    Все правильно Владимир сказал для сводного отчета

    Ссылка на сообщение
    Поделиться на другие сайты

    Присоединяйтесь к обсуждению

    Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

    Гость
    Ответить в этой теме...

    ×   Вставлено с форматированием.   Вставить как обычный текст

      Разрешено использовать не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

    Загрузка...
    ×
    ×
    • Создать...