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

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

DDD
DDDオリジナル
2024-11-20 12:10:10214ブラウズ

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 サイトの他の関連記事を参照してください。

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