-1

The array is received from the facebook api and i am not able to extract the likes array from the array,Please help me

  [data] => Array (
    [0] => Array (
        [message] => Hello
        [id] => 729659027165160_729651713832558
        [likes] => Array (
            [data] => Array (
                [0] => Array (
                    [id] => 729659027165160
                    )
                )
            [paging] => Array (
                [cursors] => Array (
                    [after] => NzI5NjU5MDI3MTY1MTYw
                    [before] => NzI5NjU5MDI3MTY1MTYw
                    )
                )
            )
        )
    [1] => Array (
        [id] => 729659027165160_718306454967084
        [likes] => Array (
            [data] => Array (
                [0] => Array (
                    [id] => 1719747118259908
                    )
                )
            [paging] => Array (
                [cursors] => Array (
                    [after] => MTcxOTc0NzExODI1OTkwOA==
                    [before] => MTcxOTc0NzExODI1OTkwOA==
                    )
                )
            )
        )
    [2] => Array (
        [id] => 729659027165160_541135166017548
        [likes] => Array (
            [data] => Array (
                [0] => Array (
                    [id] => 1162428970453842
                    )
                )
            [paging] => Array (
                [cursors] => Array (
                    [after] => MTE2MjQyODk3MDQ1Mzg0Mg==
                    [before] => MTE2MjQyODk3MDQ1Mzg0Mg==
                    )
                )
            )
        )
    [3] => Array (
        [message] => Panipaata leni prathivaadu philosophy cheppevade.... Wish Facebook introduce an unlike button soon!!!!
        [id] => 729659027165160_520677651396633
        [likes] => Array (
            [data] => Array (
                [0] => Array (
                    [id] => 1162428970453842
                    )
                [1] => Array (
                    [id] => 806391372817118
                    )
                [2] => Array (
                    [id] => 928633297192567
                    )
                [3] => Array (
                    [id] => 824812004311172
                    )
                [4] => Array (
                    [id] => 10207344532684729
                    )
                [5] => Array (
                    [id] => 1188171664544003
                    )
                )
            [paging] => Array (
                [cursors] => Array (
                    [after] => MTE4ODE3MTY2NDU0NDAwMw==
                    [before] => MTE2MjQyODk3MDQ1Mzg0Mg==
                    )
                )
            )
        )
    [4] => Array (
        [id] => 729659027165160_110578795739856
        [likes] => Array (
            [data] => Array (
                [0] => Array (
                    [id] => 1162428970453842
                    )
                )
            [paging] => Array (
                [cursors] => Array (
                    [after] => MTE2MjQyODk3MDQ1Mzg0Mg==
                    [before] => MTE2MjQyO
                    )
                )
            )
        )
    )

I am able to extract the id from the above array,but unable to extract the count of likes and message.

Rizier123
  • 58,877
  • 16
  • 101
  • 156
Cipher
  • 23
  • 5

1 Answers1

0

Try this code, it iterates in your array and stores all ids and stores the message, the likes Array and the number of likes only if they exist (Supposing that your array is named $myarray):

$result = array();

foreach($myarray['data'] as $data){

    $item = array();

    $item['id'] = $data['id'];

    if( isset($data['message']) || isset($data['likes']) ){

        if(isset($data['message'])) $item['message'] = $data['message'];

        if(isset($data['likes'])) {

            $item['likes'] = array();

            foreach($data['likes']['data'] as $like){

                $item['likes'][] = $like['id'];

            }

            $item['countlikes'] = count( $data['likes']['data'] );

        }

    }

    $result[] = $item;

}

print_r($result);

With your example Array the result will be:

Array
(
    [0] => Array
        (
            [id] => 729659027165160_729651713832558
            [message] => Hello
            [likes] => Array
                (
                    [0] => 729659027165160
                )

            [countlikes] => 1
        )

    [1] => Array
        (
            [id] => 729659027165160_718306454967084
            [likes] => Array
                (
                    [0] => 1719747118259908
                )

            [countlikes] => 1
        )

    [2] => Array
        (
            [id] => 729659027165160_541135166017548
            [likes] => Array
                (
                    [0] => 1162428970453842
                )

            [countlikes] => 1
        )

    [3] => Array
        (
            [id] => 729659027165160_520677651396633
            [message] => Panipaata leni prathivaadu philosophy cheppevade.... Wish Facebook introduce an unlike button soon!!!!
            [likes] => Array
                (
                    [0] => 1162428970453842
                    [1] => 806391372817118
                    [2] => 928633297192567
                    [3] => 824812004311172
                    [4] => 10207344532684729
                    [5] => 1188171664544003
                )

            [countlikes] => 6
        )

    [4] => Array
        (
            [id] => 729659027165160_110578795739856
            [likes] => Array
                (
                    [0] => 1162428970453842
                )

            [countlikes] => 1
        )

)
ElChiniNet
  • 2,778
  • 2
  • 19
  • 27