3

重複の可能性:
print_rで出力された配列を作成します

print_rで出力された配列の出力から配列を作成する方法の複製? これを解決するための優れたコード例もあります

出力として持っているエラーログを逆にする必要がありますprint_r($data,true)
データの例は次のようになります。

Array
(
    [subject] => this is the subject
    [body] => <p>Dear user,</p><p>this is the body of the email</p>
    [from_id] => 0
    [from_email] => admin@karakas.org
    [to] => Array
        (
            [0] => Array
                (
                    [id] => 0
                    [email] => 64909
                )

        )

    [send_to_inbox] => 1
)
4

2 に答える 2

9

PHP マニュアルにはprint_r_reverse()、コメントに関数があります: http://php.net/manual/en/function.print-r.php

ただしvar_export()、ログが を使用して生成されている場合は、代わりになることがありますvar_export()eval()この方法では、エクスポートされた配列を取得するだけで済みます。

于 2013-01-08T15:51:14.520 に答える
4

の出力はprint_r()解析されるようには設計されていません。デバッグ目的で開発者が読むように設計されています。あなたはそれを解析しようとすべきではありません。

このような性質の PHP データ ダンプを本当に解析する必要がある場合、このvar_export()関数はこの種のものを対象としています。ただし、これを解析することもお勧めしません。それでも、最適なソリューションである可能性は低いです。

配列構造の文字列表現を格納し、後で解析することを意図している場合は、/ 関数または / 関数のいずれかを使用することをお勧めしserialize()ます。unserialize()json_encode()json_decode()

これらは両方とも、はるかに信頼性が高く、簡単に解析できるデータ ダンプ形式を提供します。json_encode()2つのうち、操作が簡単なだけでなく、他の言語にも対応していて、手動で読みやすく、コンパクトであるため、毎回お勧めします.

print_r()つまり、出力を解析しないでください。代わりにjson_encode()/を使用してください。json_decode()

http://uk1.php.net/manual/en/function.json-encode.php

于 2013-01-08T15:59:53.953 に答える