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

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

Linda Hamilton
リリース: 2024-12-10 02:52:13
オリジナル
998 人が閲覧しました

How Can I Effectively Convert a PHP Object into an Array?

オブジェクトを配列形式に効果的に変換する方法

PHP 内では、オブジェクトを配列形式に変換する必要がある状況に遭遇することがあります。この記事では、この変換を実現するためのさまざまな手法について詳しく説明します。

1 次元配列

1 次元配列の変換には、次の 2 つの方法がよく使用されます:

  1. 明示的な型キャスト: (array) を使用してオブジェクトを配列にキャストするだけで、private や protected を含むすべてのオブジェクトのプロパティが保持されます。 members.
$array = (array) $object;
ログイン後にコピー
  1. get_object_vars(): この関数は、パブリックにアクセス可能なプロパティのみを含む配列を取得します。オブジェクト スコープでは、すべてのプロパティが含まれます。
$array = get_object_vars($object);
ログイン後にコピー

多次元配列

多次元配列の変換には、少し異なるアプローチが必要です。

  1. JSON エンコーディングとデコーディング: このメソッドは PHP 5.2 または 後で。 JSON エンコードでは、オブジェクトが JSON 文字列に変換され、デコードされて連想配列に戻されます。ただし、このアプローチでは、非 JSON エンコード可能なデータを含むプライベートおよび保護されたメンバーまたはオブジェクトは処理されません。
$array = json_decode(json_encode($object), true);
ログイン後にコピー
  1. カスタム関数: 次の関数は、ベースとなります。他の場所で見つかった修正バージョンでは、より包括的なオプションが提供されます:
function objectToArray($object) {
    if (is_object($object) || is_array($object)) {
        return array_map('objectToArray', (array) $object);
    }
    return $object;
}
ログイン後にコピー

この関数は再帰的ですアクセス修飾子に関係なく、すべてのオブジェクトのプロパティを配列形式に変換します。

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

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