PHPで配列をオブジェクトに変換するにはどうすればいいですか? 質問する

PHPで配列をオブジェクトに変換するにはどうすればいいですか? 質問する

このような配列をオブジェクトに変換するにはどうすればよいですか?

[128] => Array
    (
        [status] => "Figure A.
 Facebook's horizontal scrollbars showing up on a 1024x768 screen resolution."
    )

[129] => Array
    (
        [status] => "The other day at work, I had some spare time"
    )

ベストアンサー1

最も単純なケースでは、配列をオブジェクトとして「キャスト」するだけで十分でしょう。

$object = (object) $array;

別の方法としては、標準クラスを変数としてインスタンス化し、値を再割り当てしながら配列をループする方法があります。

$object = new stdClass();
foreach ($array as $key => $value)
{
    $object->$key = $value;
}

としてエドソン・メディナ指摘したように、本当にクリーンな解決策は組み込みjson_関数を使用することです。

$object = json_decode(json_encode($array), FALSE);

これはまた、すべてのサブ配列をオブジェクトに(再帰的に)変換しますが、これは必要かどうかはわかりません。残念ながら、2〜3倍のパフォーマンスの低下ループアプローチを介して。

警告! (コメントをくれた Ultra に感謝します):

json_decode は、異なる環境では UTF-8 データを異なる方法で変換します。ローカルでは '240.00' という値、本番環境では '240' という値を取得することになり、大惨事になります。さらに、変換が失敗すると、文字列は NULL として返されます。

おすすめ記事