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

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

DDD
リリース: 2024-11-20 12:10:10
オリジナル
298 人が閲覧しました

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

PHP で stdClass を配列に変換する

質問:

PHP stdClass オブジェクトを配列に変換する必要があります。ただし、(配列) キャスト、json_decode(true)、および json_decode() を使用しようとすると、空の配列が返されます。この変換を効果的に実行するにはどうすればよいですか?

答え:

Lazy One-Liner Method

パフォーマンスを少し犠牲にする場合は、JSON を利用できます。この変換を簡潔な方法で実現するためのメソッド:

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

このメソッドは最初にエンコードします。オブジェクトを JSON 文字列に変換し、デコードして配列に戻します。

stdClass を Array に変換する

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

このアプローチでは、プロパティ名を保持せずにインデックス付き配列が返されます。

stdClass を連想配列に変換

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

true を渡すことによりjson_decode の 2 番目の引数として、プロパティ名を保持しながらオブジェクトを連想配列に変換できます。

カスタム関数 (再帰)

パフォーマンスが重要な場合は、カスタム再帰関数を実装できます。オブジェクトを配列に変換するには:

function object_to_array($object) {
  if (is_object($object)) {
    $object = get_object_vars($object);
  }

  if (is_array($object)) {
    return array_map(__FUNCTION__, $object);
  } else {
    return $object;
  }
}

$array = object_to_array($booking);
ログイン後にコピー

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

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