PHP オブジェクトを連想配列に変換する
-
array
キーワードを使用してStdClass
のオブジェクトをタイプキャストし、PHP で連想配列に変換する -
PHP でユーザー定義クラス内の
StdClass
のオブジェクトを使用してオブジェクトを連想配列に変換する -
PHP で
json_encode()
およびjson_decode()
関数を使用してオブジェクトを連想配列に変換する
array
キーワードを使用して、PHP オブジェクトを StdClass
のオブジェクトを型キャストする連想配列に変換するメソッドを紹介します。var_dump()
関数を使用して、連想配列を表示します。
2 番目のアプローチは、PHP オブジェクトを連想配列に変換して、ユーザー定義クラスのコンストラクターに StdClass
を作成する別のメソッドを示しています。array
キーワードを使用して、最初のメソッドと同様にオブジェクトを連想配列に変換します。この方法は、オブジェクト指向のアプローチに従います。
また、json_encode()
および json_decode()
関数を使用して、PHP でオブジェクトを連想配列に変換する別のメソッドを紹介します。StdClass
を使用して、オブジェクトと動的プロパティを作成します。
array
キーワードを使用して StdClass
のオブジェクトをタイプキャストし、PHP で連想配列に変換する
StdClass
空のクラスを作成して PHP でオブジェクトを作成し、そのオブジェクトを使用してプロパティを作成できます。クラスのオブジェクトは、プロパティに直接アクセスできます。また、クラスの動的プロパティを作成することもできます。array
オブジェクトを使用して、オブジェクトを配列にタイプキャストできます。var_dump()
関数は、配列の型と値に関する情報をダンプします。
たとえば、new
演算子を使用して、StdClass
のオブジェクト $object
を作成します。car1
と car2
という名前の $object
を使用して 2つのプロパティを作成します。プロパティに値 porsche
と bugatti
を割り当てます。array
キーワードを使用して、$object
変数をタイプキャストします。$object
変数の前に括弧を付けて array
キーワードをラップし、var_dump()
関数を使用して値をダンプします。以下の例は、出力セクションに示すように、オブジェクトを連想配列に変換します。配列の各要素のキーと値のペアが表示されます。
サンプルコード:
#php 7.x
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>
出力:
array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }
PHP でユーザー定義クラス内の StdClass
のオブジェクトを使用してオブジェクトを連想配列に変換する
クラスのコンストラクターで StdClass
のインスタンスを作成し、array
キーワードを使用してクラスのオブジェクトを連想配列に変換できます。クラスを作成し、そのいくつかのプロパティを定義できます。クラスのコンストラクターは、クラスのプロパティを特定の値に初期化します。StdClass
のオブジェクトを作成し、クラスのプロパティの 1つに割り当てることができます。new
演算子は、クラスとともにコンストラクターを呼び出します。呼び出しの直前に array
キーワードを使用して、クラスのオブジェクトを連想配列に変換できます。
たとえば、クラス Motorcycle
を作成します。private
アクセス修飾子を $name
、$color
、および $type
として使用して 3つのクラスプロパティを作成します。クラスのコンストラクターを作成し、コンストラクター内でプロパティの値を初期化します。name
に Husky
、color
に white
を書き、type
に StdClass
のオブジェクトを作成します。$this
キーワードを使用して、プロパティを初期化します。クラスの外で、Motorcycle
クラスを呼び出し、呼び出す前に array
キーワードを使用してタイプキャストします。var_dump()
関数を使用して、型キャストされた配列に関する情報をダンプします。
サンプルコード:
#php 7.x
class Motorcycle{
private $name;
private $color;
private $type;
public function __construct(){
$this->name = "Husky";
$this->color = "white";
$this->type = new StdClass;
}
}
var_dump( (array) new Motorcycle );
出力:
array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }
PHP で json_encode()
および json_decode()
関数を使用してオブジェクトを連想配列に変換する
json_encode()
関数は値を JSON オブジェクトにエンコードし、json_decode()
関数は JSON オブジェクトを PHP オブジェクトに変換します。json_decode()
関数の 2 番目のパラメーターであるブール値は、JSON オブジェクトを変換する必要があるものを示します。true
値は JSON オブジェクトを連想配列に変換し、false
値はそれを PHP オブジェクトに変換します。
たとえば、StdClass
のオブジェクトを作成し、それを $object
変数に割り当てます。オブジェクトプロパティの 2つの値に Mustang
と Manang
という名前を付け、それらを place1
と place2
変数に格納します。$object
変数で json_encode()
関数を使用し、値を $json
変数に格納します。次に、$json
変数で json_decode()
関数を使用し、2 番目のパラメーターとしてブール値 true
を使用します。値を $array
変数に格納します。var_dump()
関数を使用して変数をダンプします。
以下の例では、変数 $object
は StdClass
オブジェクトを保持しています。json_ecode()
関数は、オブジェクトを JSON 文字列に変換します。json_decode()
関数は、JSON 文字列を連想配列に変換します。
サンプルコード:
#php 7.x
<?php
$object = new StdClass;
$object->place1 = "Mustang";
$object->place2 = "Manang";
$json= json_encode($object);
$array = json_decode($json, true);
var_dump($array);
?>
出力:
array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn