PHP では、配列とオブジェクトは 2 つの異なる形式ですが、多くの場合、それらの間で変換する必要があります。この記事では、PHP で配列をオブジェクトの配列に変換する方法、およびオブジェクトの配列を通常の配列に戻す方法について説明します。
まず、通常の配列をオブジェクト配列に変換する方法を見てみましょう。 PHP では、キャスト (オブジェクトへの配列のキャスト) または手動でオブジェクトを作成することによってこれを実現できます。以下は、2 つのメソッドのデモです。
メソッド 1: 強制型変換
$arr = array('id'=>1, 'name'=>'John', 'age'=>25); $obj = (object)$arr; print_r($obj);
出力:
stdClass Object ( [id] => 1 [name] => John [age] => 25 )
上記のコードでは、(object )
演算子は配列をオブジェクトに変換します。この演算子は実際には、スカラー値、配列、またはリソースをオブジェクトに変換するキャストです。これで、$obj
はオブジェクトになり、通常のオブジェクトと同様にそのプロパティにアクセスできます。
方法 2: オブジェクトを手動で作成します
$arr = array('id'=>1, 'name'=>'John', 'age'=>25); $obj = new stdClass(); foreach ($arr as $key=>$value) { $obj->$key = $value; } print_r($obj);
出力:
stdClass Object ( [id] => 1 [name] => John [age] => 25 )
上記のコードでは、空のオブジェクト $obj
を手動で作成しました。次に、ループを使用して配列を走査し、配列の各キーと値のペアをオブジェクトのプロパティとして割り当てます。 $obj
は 3 つのプロパティを持つオブジェクトです。
次に、オブジェクトの配列を通常の配列に変換する方法を見てみましょう。 PHP では、キャスト (オブジェクトを配列にキャスト) するか、オブジェクトの配列を手動で反復処理することでこれを実現できます。以下は、2 つのメソッドのデモです。
メソッド 1: 強制型変換
$obj1 = new stdClass(); $obj1->id = 1; $obj1->name = 'John'; $obj1->age = 25; $obj2 = new stdClass(); $obj2->id = 2; $obj2->name = 'Jane'; $obj2->age = 30; $arr = array($obj1, $obj2); $arr = (array)$arr; print_r($arr);
出力:
Array ( [0] => stdClass Object ( [id] => 1 [name] => John [age] => 25 ) [1] => stdClass Object ( [id] => 2 [name] => Jane [age] => 30 ) )
上記のコードでは、(array )
演算子は、オブジェクトの配列を通常の配列に変換します。この演算子は実際には、オブジェクトを配列に変換するキャストです。これで、$arr
は通常の配列になり、通常の配列と同じようにその要素にアクセスできます。
方法 2: オブジェクト配列を手動で走査する
$obj1 = new stdClass(); $obj1->id = 1; $obj1->name = 'John'; $obj1->age = 25; $obj2 = new stdClass(); $obj2->id = 2; $obj2->name = 'Jane'; $obj2->age = 30; $arr = array($obj1, $obj2); $new_arr = array(); foreach ($arr as $obj) { $new_arr[] = (array)$obj; } print_r($new_arr);
出力:
Array ( [0] => Array ( [id] => 1 [name] => John [age] => 25 ) [1] => Array ( [id] => 2 [name] => Jane [age] => 30 ) )
上記のコードでは、オブジェクト配列 $arr
を走査します。各オブジェクトは配列にキャストされ、新しい配列 $new_arr
に追加されます。 $new_arr
は 2 つの要素を持つ通常の配列で、各要素は 3 つのキーと値のペアを含む連想配列です。
概要
PHP では、キャストまたは手動トラバーサルを使用して、配列とオブジェクトの間で変換を行うことができます。どちらの方法を選択しても、配列とオブジェクトの違いを理解していれば、簡単に変換できます。実際の開発では、配列をより適切に操作するために配列をオブジェクトに変換する必要がある場合があるため、この機能は非常に一般的です。
以上がPHPで配列をオブジェクト配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。