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

Minahil Noor 2023年1月30日
  1. PHP で配列をオブジェクトに変換するための型キャストの使用法
  2. json_encode()json_decode() 関数を用いて PHP で配列をオブジェクトに変換する例
PHP で配列をオブジェクトに変換する方法

この記事では、PHP で array をオブジェクトに変換する方法を紹介します。

  • 型キャストを使用する
  • 関数 json_decodejson_encode() を利用します。

PHP で配列をオブジェクトに変換するための型キャストの使用法

型キャストは変数のデータ型を変換するのに役立ちます。型キャストを使用すると、integerfloatstring などに変換することができます。ここでは、PHP で array をオブジェクトに変換するために型キャストを使用します。配列をオブジェクトにキャストする正しい方法は以下の通りです。

$variableName = (object)$arrayName;

以下のプログラムは、型キャストを使って array をオブジェクトに変換する方法を示しています。

<?php 
$array = array("Rose",
                "Lili",
                "",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "",
                "Daffodil",
                "Daisy");
                
$object= (object)$array;
echo("The object is \n");
var_dump($object);
?> 

出力:

The object is 
object(stdClass)#1 (10) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(0) ""
  [3]=>
  string(7) "Jasmine"
  [4]=>
  string(8) "Hibiscus"
  [5]=>
  string(5) "Tulip"
  [6]=>
  string(10) "Sun Flower"
  [7]=>
  string(0) ""
  [8]=>
  string(8) "Daffodil"
  [9]=>
  string(5) "Daisy"
}

json_encode()json_decode() 関数を用いて PHP で配列をオブジェクトに変換する例

PHP で array をオブジェクトに変換するには、json_encode()json_decode() 関数を使用することができます。json_encode() 関数は配列を JSON の string に変換します。次に、この string をオブジェクトに変換するために json_decode() 関数を利用します。

関数 json_encode() を利用する正しい構文は以下の通りです。

json_encode($variable, $option, $depth)

関数 json_encode() は 3つのパラメータを受け付けます。パラメータの詳細は以下の通りです。

パラメータ 説明
$variable 強制 これは JSON の string に変換したい値です。
$option オプション 複数の定数からなるビットマスクです。これらの定数を確認するには、ここでを参照してください。
$depth オプション これは深さであり、0 よりも大きくなければなりません。

関数 json_decode() を利用するための正しい構文は以下の通りです。

json_decode($jsonString, $assoc, $depth, $options)

関数 json_decode() は 4つのパラメータを受け取ります。パラメータの詳細は以下の通りです。

パラメータ 説明
$jsonString 強制 オブジェクトに変換したい JSON 文字列です。
$assoc オプション これはブール値です。TRUE に設定すると、オブジェクトを連想配列として返します。
$depth オプション これは深さを表すもので、0 よりも大きくなければなりません。
$options オプション これは JSON_OBJECT_AS_ARRAY, JSON_BIGINT_AS_STRING, JSON_THROW_ON_ERROR のビットマスクです。

これら 2つの関数を用いて array をオブジェクトに変換するプログラムは以下の通りです。

<?php 
$array = array("Rose","Lili","Jasmine","Hibiscus","Tulip","Sun Flower","Daffodil","Daisy");
$object = json_encode($array);
$object1 = json_decode($object);
echo("The object is:\n");
var_dump($object1);
?> 

出力:

The object is:
array(8) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(5) "Tulip"
  [5]=>
  string(10) "Sun Flower"
  [6]=>
  string(8) "Daffodil"
  [7]=>
  string(5) "Daisy"
}

関連記事 - PHP Array