PHP では、配列オブジェクトを別の配列オブジェクトに変換する必要がある場合がありますが、このプロセスは難しいものではなく、数行の簡単なコードで実現できます。
配列オブジェクトを配列オブジェクトに変換する主な手順は次のとおりです。
ソース配列があるとします。複数の Object 要素を含むオブジェクトの場合、各要素には複数のプロパティがあります。これらのオブジェクト要素を別の配列オブジェクトに変換する必要があり、各要素に含まれる必要があるのは特定の属性だけです。
コードは次のとおりです:
$sourceArray = array( (object) array('id' => 1, 'name' => 'John', 'age' => 25), (object) array('id' => 2, 'name' => 'Amy', 'age' => 35), (object) array('id' => 3, 'name' => 'Bob', 'age' => 28), (object) array('id' => 4, 'name' => 'Cathy', 'age' => 30) );
ターゲット配列オブジェクトのデータ構造を定義する必要があります。つまり、各要素にどのような属性が含まれるかということです。ターゲット配列の各要素にソース配列のすべての属性が含まれている場合、ターゲット配列は変換せずにソース配列と直接等しくなります。
$targetStructure = array( 'id' => '', 'name' => '', );
ソース配列とターゲット配列のデータ構造ができたので、次のステップは変換プロセスを処理することです。 foreach ループを使用して、ソース配列内の各要素を反復処理し、ターゲット配列のデータ構造に基づいて、ソース配列内の対応する属性をターゲット配列にコピーできます。
$targetArray = array(); foreach ($sourceArray as $sourceObject) { $targetObject = array(); foreach ($targetStructure as $key => $value) { $targetObject[$key] = $sourceObject->$key; } $targetArray[] = (object) $targetObject; }
上記のコードでは、まず空の配列 $targetArray
を定義して、変換されたデータを保存します。次に、ソース配列に対して foreach ループを実行し、各要素 $sourceObject
を走査します。内側のループでは、ターゲット配列の $targetStructure
がループされて、対応する key
と value
が生成されます。最後に、各ターゲット要素を新しいオブジェクトに変換し、$targetArray
に追加します。
最後に、変換されたターゲット配列を出力して、変換が成功したかどうかを確認できます。 print_r()
関数を使用して配列を出力することも、json_encode()
関数を使用して配列を JSON 形式に変換して出力結果を確認しやすくすることもできます。
echo json_encode($targetArray);
このようにして、配列オブジェクトの変換のすべての手順が完了しました。完全なコードは次のとおりです。
$sourceArray = array( (object) array('id' => 1, 'name' => 'John', 'age' => 25), (object) array('id' => 2, 'name' => 'Amy', 'age' => 35), (object) array('id' => 3, 'name' => 'Bob', 'age' => 28), (object) array('id' => 4, 'name' => 'Cathy', 'age' => 30) ); $targetStructure = array( 'id' => '', 'name' => '', ); $targetArray = array(); foreach ($sourceArray as $sourceObject) { $targetObject = array(); foreach ($targetStructure as $key => $value) { $targetObject[$key] = $sourceObject->$key; } $targetArray[] = (object) $targetObject; } echo json_encode($targetArray);
実際の開発では、さらにデータの処理とフィルタリングを実行する必要がある場合がありますが、一般的な考え方は基本的に上記のサンプル コードと同じです。データ変換の必要性が生じた場合は、実際の状況に応じてコードを変更し、対応するデータ処理を完了できます。
以上がPHPの配列オブジェクトを配列オブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。