2012-11-11 78 views
0

可能重複:
Able to see a variable in print_r()'s output, but not sure how to access it in codePHP的echo嵌套對象

我想 '回聲' 多一點點的嵌套對象。 我在這個問題上看到了幾個帖子 - 但是這讓我感到困惑。

我得到命名爲數組/對象 'arrResult' 和的print_r(arrResult)輸出是:

Array 
(
    [status] => stdClass Object 
     (
      [code] => 0 
      [message] => Success 
     ) 

    [result] => Array 
     (
      [0] => stdClass Object 
       (
        [base] => stdClass Object 
         (
          [id] => 3 
          [created] => 2012-11-11 12:11:07 
          [start] => 2012-11-11 
         ) 

        [pos] => Array 
         (
          [0] => stdClass Object 
           (
            [id] => 4 
            [invoices_id] => 3 
            [article_id] => 1 
            [quantity] => 1 
            [unit] => Monate 
            [pos_txt] => Paketname 
           ) 

         ) 

        [summ] => stdClass Object 
         (
          [net] => 2.52 
          [discount] => 0 
          [tax] => 0.47899159663865 
          [gross] => 3 
          [rounded_net] => 2.52 
         ) 

       ) 

      [1] => stdClass Object 
       (
        [base] => stdClass Object 
         (
          [id] => 2 
          [created] => 2012-11-11 12:10:39 
          [start] => 2012-11-11 
         ) 

        [pos] => Array 
         (
          [0] => stdClass Object 
           (
            [id] => 3 
            [invoices_id] => 2 
            [article_id] => 2 
            [quantity] => 1 
            [unit] => Monate 
            [pos_txt] => Paketname2 
           ) 

         ) 

        [summ] => stdClass Object 
         (
          [net] => 5.04 
          [discount] => 0 
          [tax] => 0.95798319327731 
          [gross] => 6 
          [rounded_net] => 5.04 
         ) 

       ) 

     ) 

) 

欲回聲所有[POS]。 類似於'echo arrResult [result] [0] [pos] [0] - > pos_txt','echo arrResult [result] [0] [pos] [1] - > pos_txt',...

我想過這個:

foreach ((array)$arrResult['result'] as $key => $contract) { 
    foreach ($contract as $key => $objPos){ 
     echo $objPos->pos_txt; 
    } 
} 

我的大腦並沒有得到它。 有人可以幫助我嗎?

回答

1

您可以使用

echo "<pre>"; 
foreach(array_map(function($v){ return $v->pos ;}, $data['result']) as $list) 
{ 
    foreach($list as $objPos) 
     echo $objPos->pos_txt,PHP_EOL; 
} 

輸出

Paketname 
Paketname2 

See Live Demo

+0

這正是我需要和它的作品! 謝謝! – user1815976

+0

不客氣 – Baba

0

使用Xdebug擴展,它的東西,你必須有更大的發展,無論如何,它稍有變化如何的var_dump的作品,我相信它會解決你的問題

see xdebug documentation

0
$num = count($arrResult['result']); 
for ($i=0; $i <= $num; $i++) { 
    echo $arrResult['result'][$i]->pos[0]->pos_txt; 
}