ホームページ > バックエンド開発 > PHPの問題 > PHPでオブジェクトデータを配列に変換する方法

PHPでオブジェクトデータを配列に変換する方法

PHPz
リリース: 2023-04-23 19:40:45
オリジナル
758 人が閲覧しました

PHP では、オブジェクトと配列が一般的に使用されるデータ型です。ただし、データを処理する場合は、オブジェクトを配列に変換する必要があります。この変換は PHP では非常に一般的であり、プロセスは簡単です。今回はオブジェクトを配列に変換する方法を解説します。

PHP オブジェクトはクラス インスタンスに基づいており、各オブジェクトには独自のプロパティとメソッドがあります。オブジェクトのプロパティには通常、数値、文字列、ブール値などの基本的なタイプの値が含まれていますが、他のオブジェクトである場合もあります。オブジェクトのプロパティとメソッドには、矢印記号「->」を使用してアクセスできます。

一方、配列は、特定の順序で配置された値のセットを含むコンテナ データ型です。配列には、数値、文字列、ブール値、オブジェクト、その他の配列を含む、あらゆる種類のデータを含めることができます。

PHP オブジェクトを配列に変換するために、PHP には get_object_vars() と json_decode() という 2 つの組み込み関数が用意されています。以下では、これら 2 つの機能の使い方を詳しく紹介します。

get_object_vars() 関数を使用する

get_object_vars() 関数は、オブジェクトをパラメータとして受け取り、オブジェクトの属性と対応する値の連想配列を返します。この配列のキーはオブジェクトのプロパティの名前であり、値はプロパティの値です。

次は簡単な例です:

class Person {
  public $name = "John";
  public $age = 30;
  public $city = "New York";
}

$person = new Person();
$personArray = get_object_vars($person);
print_r($personArray);
ログイン後にコピー

出力結果は次のとおりです:

Array ( [name] => John [age] => 30 [city] => New York )
ログイン後にコピー
ログイン後にコピー

上記のように、get_object_vars() 関数によって返される配列には、 person クラスと対応する値、関数のパラメーターはオブジェクト自体です。

json_decode() 関数を使用する

json_decode() 関数は、JSON 形式のデータを PHP オブジェクトまたは配列に変換します。最初のパラメータは JSON 形式の文字列で、2 番目のパラメータは JSON 文字列を連想配列に変換するかどうかを指定するブール値です。

次は簡単な例です:

$jsonString = '{"name":"John","age":30,"city":"New York"}';
$personArray = json_decode($jsonString, true);
print_r($personArray);
ログイン後にコピー

出力結果は次のとおりです:

Array ( [name] => John [age] => 30 [city] => New York )
ログイン後にコピー
ログイン後にコピー

上に示すように、最初に JSON 形式の文字列を作成します。次に、 json_decode() 関数を使用して、この文字列を配列に変換します。関数呼び出しでは、2 番目のパラメーターが true に設定されています。これは、JSON 文字列を連想配列に変換することを意味します。

注: デフォルトでは、 json_decode() 関数は JSON 文字列を配列ではなく PHP オブジェクトに変換します。 JSON 文字列を配列に変換する場合は、関数パラメータの 2 番目のパラメータを true に設定します。

概要

PHP ではオブジェクトを配列に変換するのは非常に簡単で、2 つの組み込み関数を使用して実行できます。 get_object_vars() 関数はオブジェクトのプロパティを配列に変換し、json_decode() 関数は JSON 文字列を配列に変換します。どちらのメソッドもオブジェクトを配列に変換します。

以上がPHPでオブジェクトデータを配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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