ホームページ > バックエンド開発 > PHPチュートリアル > PHP オブジェクトを配列に変換するにはどうすればよいですか?

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

DDD
リリース: 2024-12-09 10:30:05
オリジナル
688 人が閲覧しました

How Can I Convert a PHP Object to an Array?

PHP でのオブジェクトの配列への変換

PHP のオブジェクトは複雑なデータ構造を表しますが、配列はインデックス付きのコレクションです。オブジェクトを配列に変換するには、目的の配列の次元に基づいて適切なメソッドを選択する必要があります。

単次元配列

単次元配列の場合、次の 2 つのアプローチが一般的に使用されます:

  • (配列)キャスト:

    $array = (array) $object;
    ログイン後にコピー
  • get_object_vars:

    $array = get_object_vars($object);
    ログイン後にコピー

これらのメソッドの主な違いは次のとおりです。オブジェクトのプロパティをどのように扱うかです。 get_object_vars はパブリック プロパティのみを返しますが、(array) はプライベートおよび保護されたプロパティを含むすべてのプロパティを配列にキャストします。

多次元配列

多次元オブジェクトの変換配列への変換にはさらに大きな課題が伴います。考えられる解決策の 1 つは、PHP の JSON 関数を利用することです。

$array = json_decode(json_encode($object), true);
ログイン後にコピー

ただし、この方法ではプライベート プロパティと保護されたプロパティが除外されるため、JSON でエンコードできないデータを含むオブジェクトには適していません。

代替アプローチオブジェクトのプロパティを再帰的に配列に変換する次の関数を使用することです:

function objectToArray ($object) {
    if(!is_object($object) && !is_array($object))
        return $object;

    return array_map('objectToArray', (array) $object);
}
ログイン後にコピー

この関数private や protected を含むすべてのオブジェクト プロパティが結果の配列に確実に含まれるようにします。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート