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