douzi6060 2017-08-14 18:45
浏览 42
已采纳

php array_reverse获取最后一个循环

So im trying to reverse array and ADD something to last item on loop, when i run this code:

$data = ($json['data']);
foreach($data as $item){
    if(isset($item['Metadata']) && $item['Metadata']['id_suscripcion'] == $id_sus){
        if ($item === end($data))
            echo $item['id'].' LAST ELEMENT!';
        }      
    }

I get this results:

Array
(
    [ticketNumber] => 172252526529700541    
    [Metadata] => Array
        (
            [id_suscripcion] => 0000000000004314
        )

    [id] => 193172252526529772
)

Array
(
    [ticketNumber] => 172242526591400527
    [Metadata] => Array
        (
            [id_suscripcion] => 0000000000004314
        )

    [id] => 193172242526591380
)

Array
(
    [ticketNumber] => 172232526775600149
    [Metadata] => Array
        (
            [id_suscripcion] => 0000000000004314
        )

    [id] => 193172232526775687
)
193172232526775687 LAST ELEMENT!

now the problem is when I add array_reverse() $data = array_reverse($json['data']); LAST ELEMENT! will not show, any suggestions?

  • 写回答

2条回答 默认 最新

  • douchun2158 2017-08-14 19:02
    关注

    If you need to add something for every array inside $data and something extra for the last, I suggest you break it up or use a for loop to count.

    $data = array_reverse($json['data']);
    for($i = 0; $i < count($data); $i++){
        if( isset( $data[$i]['Metadata'] ) && $data[$i]['Metadata']['id_suscripcion'] == $id_sus){
            if ( $i ===0 || $data[$i] === reset( $data ) )
                echo $item['id'].' LAST ELEMENT!';
            }      
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?