質問:
PHP stdClass オブジェクトを配列に変換する必要があります。ただし、(配列) キャスト、json_decode(true)、および json_decode() を使用しようとすると、空の配列が返されます。この変換を効果的に実行するにはどうすればよいですか?
答え:
パフォーマンスを少し犠牲にする場合は、JSON を利用できます。この変換を簡潔な方法で実現するためのメソッド:
$array = json_decode(json_encode($booking), true);
このメソッドは最初にエンコードします。オブジェクトを JSON 文字列に変換し、デコードして配列に戻します。
$array = (array) json_decode(json_encode($booking));
このアプローチでは、プロパティ名を保持せずにインデックス付き配列が返されます。
$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 サイトの他の関連記事を参照してください。