ホームページ  >  記事  >  バックエンド開発  >  PHP stdClass オブジェクトを配列に確実に変換するにはどうすればよいですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-16 00:13:02384ブラウズ

How to Reliably Convert a PHP stdClass Object to an Array?

php stdClass to array

PHP を使用する場合、stdClass オブジェクトを配列に変換する必要が生じる場合があります。この変換は難しい場合があり、メソッドが異なると予期しない動作が発生する可能性があります。

一般的なアプローチの 1 つは、(array) $booking を使用してオブジェクトを配列にキャストすることです。ただし、オブジェクトにネストされたオブジェクトまたは配列が含まれている場合、このメソッドは空の配列になる可能性があります。

別のオプションは、json_decode($booking, true) を使用することです。このメソッドはオブジェクトを配列に変換しますが、オブジェクトにネストされたオブジェクトまたは配列が含まれている場合は空の配列になる可能性もあります。

stdClass オブジェクトを配列に変換するためのより信頼性の高い方法は、次のとおりです。オブジェクトとその子を反復処理して、各要素を対応する配列表現に変換する再帰関数。そのような関数の例を次に示します。

public function objectToArray($d) {
        if (is_object($d)) {
            // Gets the properties of the given object
            // with get_object_vars function
            $d = get_object_vars($d);
        }

        if (is_array($d)) {
            /*
             * Return array converted to object
             * Using __FUNCTION__ (Magic constant)
             * for recursive call
             */
            return array_map(__FUNCTION__, $d);
        }
        else {
            // Return array
            return $d;
        }
    }

この関数は、元のオブジェクトの構造と値を保持しながら、stdClass オブジェクトを配列に変換します。必要に応じて、配列をオブジェクトに変換するために使用することもできます。

以上がPHP stdClass オブジェクトを配列に確実に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。