简体   繁体   中英

How to exclude last array element from execution in smarty foreach loop?

Following is an array named $user_transactions which is assgined to smarty template:

Array
(
    [0] => Array
        (
            [transaction_user_id] => ce838192983c50e9f3c25663eee2d7bb
            [transaction_no] => 0349121204111
            [transaction_total_amount] => 918.00
            [transaction_date] => 11/04/2012
            [transaction_status] => cancelled
        )

    [1] => Array
        (
            [transaction_user_id] => 3ff1379851d1f3c01d2ade968cf3b3fa
            [transaction_no] => 1937101204132
            [transaction_total_amount] => 179.00
            [transaction_date] => 13/04/2012
            [transaction_status] => cancelled
        )

    [2] => Array
        (
            [transaction_user_id] => 9508feceeea6edb2cf12ad7eb600a315
            [transaction_no] => 1636011204143
            [transaction_total_amount] => 259.00
            [transaction_date] => 14/04/2012
            [transaction_status] => cancelled
        )

    [3] => Array
        (
            [transaction_user_id] => 3ff1379851d1f3c01d2ade968cf3b3fa
            [transaction_no] => 2309051204144
            [transaction_total_amount] => 179.00
            [transaction_date] => 14/04/2012
            [transaction_status] => cancelled
        )

    [4] => Array
        (
            [transaction_user_id] => 7e68b03b6c161fa230a9bc943012fb15
            [transaction_no] => 4606031204155
            [transaction_total_amount] => 956.00
            [transaction_date] => 15/04/2012
            [transaction_status] => cancelled
        )

    [5] => Array
        (
            [transaction_user_id] => 1b04818029044840c57879ddf5200538
            [transaction_no] => 1331081204176
            [transaction_total_amount] => 589.00
            [transaction_date] => 17/04/2012
            [transaction_status] => cancelled
        )

    [6] => Array
        (
            [transaction_user_id] => 4732fb946cb60d6e2073adbc1f3a5ca5
            [transaction_no] => 5909041204187
            [transaction_total_amount] => 589.00
            [transaction_date] => 18/04/2012
            [transaction_status] => cancelled
        )

    [7] => Array
        (
            [transaction_user_id] => 4732fb946cb60d6e2073adbc1f3a5ca5
            [transaction_no] => 4349041204188
            [transaction_total_amount] => 129.00
            [transaction_date] => 18/04/2012
            [transaction_status] => cancelled
        )

    [8] => Array
        (
            [transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
            [transaction_no] => 2456081204259
            [transaction_total_amount] => 129.00
            [transaction_date] => 25/04/2012
            [transaction_status] => cancelled
        )

    [9] => Array
        (
            [transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
            [transaction_no] => 39180912042510
            [transaction_total_amount] => 219.00
            [transaction_date] => 25/04/2012
            [transaction_status] => cancelled
        )

    [10] => Array
        (
            [transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
            [transaction_no] => 58310212042511
            [transaction_total_amount] => 129.00
            [transaction_date] => 25/04/2012
            [transaction_status] => cancelled
        )

    [11] => Array
        (
            [transaction_user_id] => a5a24f328aad0f8053359ead49b83be9
            [transaction_no] => 16250912042512
            [transaction_total_amount] => 79.00
            [transaction_date] => 25/04/2012
            [transaction_status] => cancelled
        )

    [12] => Array
        (
            [transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
            [transaction_no] => 35230912042613
            [transaction_total_amount] => 79.00
            [transaction_date] => 26/04/2012
            [transaction_status] => cancelled
        )

    [13] => Array
        (
            [transaction_user_id] => c1610997fa0741526d57c459bc6f961a
            [transaction_no] => 07300912042614
            [transaction_total_amount] => 219.00
            [transaction_date] => 26/04/2012
            [transaction_status] => cancelled
        )

    [14] => Array
        (
            [transaction_user_id] => 6dd8086fa23bad37580fe55f35509277
            [transaction_no] => 14430912042815
            [transaction_total_amount] => 589.00
            [transaction_date] => 28/04/2012
            [transaction_status] => cancelled
        )

    [15] => Array
        (
            [transaction_user_id] => e997536e693efa0ddd4ece248ba3430d
            [transaction_no] => 04000612042916
            [transaction_total_amount] => 589.00
            [transaction_date] => 29/04/2012
            [transaction_status] => cancelled
        )

    [16] => Array
        (
            [transaction_user_id] => c307ce45ef04ab1bf74592ab05792f75
            [transaction_no] => 28040912043017
            [transaction_total_amount] => 129.00
            [transaction_date] => 30/04/2012
            [transaction_status] => cancelled
        )

    [17] => Array
        (
            [transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
            [transaction_no] => 19500912050218
            [transaction_total_amount] => 589.00
            [transaction_date] => 02/05/2012
            [transaction_status] => cancelled
        )

    [18] => Array
        (
            [transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
            [transaction_no] => 36010512050819
            [transaction_total_amount] => 79.00
            [transaction_date] => 08/05/2012
            [transaction_status] => cancelled
        )

    [19] => Array
        (
            [transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
            [transaction_no] => 19020512050820
            [transaction_total_amount] => 299.00
            [transaction_date] => 08/05/2012
            [transaction_status] => cancelled
        )

    [transaction_count_data] => Array
        (
            [success_transaction_count] => 10
            [inprocess_transaction_count] => 11
            [cancelled_transaction_count] => 66
            [failed_transaction_count] => 0
        )

)

To print the array elements i've used following forach loop in my smarty template:

<tbody>
  {if $user_transactions}           
    {foreach from=$user_transactions item='my_transaction'}
      <tr>
        <td>
          <div class="checkbxd"><input class="custom-check" type="checkbox" name="subject" id="subject"></div><div class="checkbxd_txt">{$my_transaction.transaction_no}</div>
        </td>
        <td>{$my_transaction.transaction_date}</td>
        <td>{$my_transaction.transaction_status|capitalize:true}</td>
        <td>{$my_transaction.transaction_total_amount}</td>
        <td align="left">
          <a href="{$control_url}modules/transactions/view_transactions.php?op=payment_details&page={$cur_page}&txn_no={$my_transaction.transaction_no}&user_id={$my_transaction.transaction_user_id}&from_date={$from_date}&to_date={$to_date}{if $transaction_status!=''}&transaction_status={$transaction_status}{/if}{if $transaction_no!=''}&transaction_no={$transaction_no}{/if}#searchPopContent" class="c-icn c-search inline_view_transaction_details">search</a>
        </td>
      </tr>
    {/foreach}  
  {else}
      <tr><td colspan="5" align="center"><b>You haven't made any transaction yet.</b></td></tr>
  {/if}  
  </tbody>

Now here I don't want to access the last element from array having key transaction_count_data as it has different set of elements than other array elements. Can you help me in excluding this last element from foreach loop in smarty loop? Thanks in advance.

I agree with HamZa in that this should be done before it reaches the template. That said, however, it's possible to do in Smarty with the foreach.last property.

{if not $smarty.foreach.my_transaction.last}do your stuff{/if}

You can use the last property

{if $smarty.foreach.my_transaction.last}

Reference

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM