Php 如何在smarty foreach循环中从执行中排除最后一个数组元素?

Php 如何在smarty foreach循环中从执行中排除最后一个数组元素?,php,arrays,foreach,smarty,associative-array,Php,Arrays,Foreach,Smarty,Associative Array,以下是一个名为$user\u transactions的数组,该数组与smarty模板关联: Array ( [0] => Array ( [transaction_user_id] => ce838192983c50e9f3c25663eee2d7bb [transaction_no] => 0349121204111 [transaction_total_amount] =>

以下是一个名为
$user\u transactions
的数组,该数组与smarty模板关联:

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
        )

)
<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>
要打印阵列元素,我在smarty模板中使用了以下forach循环:

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
        )

)
<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>

{if$user_transactions}
{foreach from=$user\u transactions item='my\u transaction'}
{$my_transaction.transaction_no}
{$my_transaction.transaction_date}
{$my_transaction.transaction_status |大写:true}
{$my_transaction.transaction_total_amount}
{/foreach}
{else}
你还没有做任何交易。
{/if}

现在,我不想访问具有key
transaction\u count\u data
的数组中的最后一个元素,因为它的元素集与其他数组元素不同。您能帮我排除smarty循环中foreach循环的最后一个元素吗?提前感谢。

您可以使用
last
属性

{if $smarty.foreach.my_transaction.last}

您可以使用
last
属性

{if $smarty.foreach.my_transaction.last}

我同意HamZa的观点,这应该在它到达模板之前完成。不过,也就是说,可以在Smarty中使用该房产

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

我同意HamZa的观点,这应该在它到达模板之前完成。不过,也就是说,可以在Smarty中使用该房产

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

为什么不在PHP中复制该数组并删除最后一个元素,最后将其传递给Smarty?@HamZa:不,很遗憾,由于一些限制,我不能这样做。模板背后的整个原则是编写更少的逻辑/“数据处理”在您的演示文稿中,为什么不用PHP复制该数组并删除最后一个元素,最后将其交付给Smarty?@HamZa:不,很遗憾,由于一些限制,我不能这样做。模板背后的整个原则是在演示文稿中编写更少的逻辑/数据处理