Bir Array bizim parçaları yankılanan?

1 Cevap php

I have the following array that I get as an output from facebook: http://www.paste.to/v/1jntlnml

Birlikte aşağıdaki kod-

$stream = $facebook->api_client->stream_get('',128342905144,'0','0',30,'','','','');

foreach($stream as $wallpost) 
{
   echo '<pre>';
   print_r($wallpost);
   echo '</pre>';
}

Yani ben ihtiyacım veri almak, ama ben bu dizinin içindeki bağımsız değişkenler seslenmek istiyorum. Örneğin, her yazı için [Mesaj] echo.

Sadece bir kez döngüler beri, ben echo $wallpost['message'] ya da benzer bir şey bulamıyorum.

Herhangi bir fikir?

1 Cevap

Çıkış echo $wallpost Array Array ise, ben örneğin, $ wallpost pastebin gelen diziler içerir varsayalım

$stream = Array(
  // $stream[0]
  Array(
    // $stream[0][0]
    Array('message' => 'msg1'),
    // $stream[0][1]
    Array('message' => 'msg2'),
  ),
  // $stream[0]
  Array(
    /* other stuff */
  )
);

Hangi durumda bu gibi mesajlar içeren, ilk dizi yineleme tarafından iletileri alıyorum

foreach($stream[0] as $wallposts) {
    echo $wallposts['message'];
}

Bir alternatif olarak, tek seferde tüm dizi çapraz bir RecursiveArrayIterator içine dönen dizi sarın:

$iterator = new RecursiveIteratorIterator(
                new RecursiveArrayIterator($stream),
                RecursiveIteratorIterator::SELF_FIRST));

foreach($iterator as $key => $val) {
    if($key === 'message') {
        echo $val;
    }
}

Note: in your case, using the Iterator is rather pointless though because you know the second array does not contain any elements with posts in it and the first array is not nested.