0

重複の可能性:
print_r()の出力で変数を確認できますが、コードで変数にアクセスする方法がわかりません

もう少しネストされたオブジェクトを「エコー」したい。私はこの質問へのいくつかの投稿を見ました-しかしこれは私をびっくりさせています。

'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;
    }
}

私の脳はそれを理解していません。誰かがこれを手伝ってくれますか?

4

3 に答える 3

2

使用できます

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

ライブデモを見る

于 2012-11-11T12:12:42.453 に答える
0

xdebug拡張機能を使用してください。とにかく開発に必要なものです。var_dumpの動作が少し変わり、問題が解決すると思います。

xdebugのドキュメントを参照してください

于 2012-11-11T12:20:01.033 に答える
0
$num = count($arrResult['result']);
for ($i=0; $i <= $num; $i++) {
    echo $arrResult['result'][$i]->pos[0]->pos_txt;
}
于 2012-11-11T12:24:10.660 に答える