PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでオブジェクトを配列に変換します。


PHPアプリケーションでは、文字列、配列、オブジェクトなどのさまざまな形式のデータを処理しています...リアルタイムアプリケーションでは、連想配列の形式でphpオブジェクトの結果を読み取って取得する必要がある場合があります。目的の出力。

そこで、ここでは、phpオブジェクトをPHPで連想配列に変換する方法について説明します。

PHPのオブジェクトと連想配列とは何かを説明しましょう。オブジェクトはクラスのインスタンスです。つまり、1つのクラスから多くのオブジェクトを作成できます。これは単にクラスの見本であり、メモリが割り当てられています。一方、文字列をインデックスとして構成する配列は、連想配列と呼ばれます。キーと値のペアが含まれており、値はそれぞれのキーに関連付けられています。

次に、オブジェクトを配列に変換するさまざまな方法について説明します。

方法1:

json_decodeおよびjson_encodeテクニックの利用:

最初に、json_encode()関数は指定された値のJSONエンコードされた文字列を返します。json_decode()関数はそれをPHP配列に変換します。

例:

<?php
   class student {
      public function __construct($firstname, $lastname) {
         $this->firstname = $firstname;
         $this->lastname = $lastname;
      }
   }
   $myObj = new student("Alex", "Stokes");
   echo "Before conversion:".'</br>';
   var_dump($myObj);
   $myArray = json_decode(json_encode($myObj), true);
   echo "After conversion:".'</br>';
   var_dump($myArray);
?>

出力:

Before conversion:
object(student)#1 (2) { ["firstname"]=> string(4) "Alex" ["lastname"]=> string(6) "Stokes" }
After conversion:
array(2) { ["firstname"]=> string(4) "Alex" ["lastname"]=> string(6) "Stokes" }

説明:

ここでは、クラスstudentを作成し、そのクラス内で、オブジェクトの作成時に実行される__construct()関数を宣言しました。コンストラクターは、新しいキーワードを使用してオブジェクトを作成するときに後で提供される引数を受け取ります。最初のvar_dump()式ではオブジェクトを出力していますが、2番目のケースでは、json_decodeとjson_encodeの手法を使用してオブジェクトを配列に変換しています。

方法2:

型キャスト手法を使用してオブジェクトを配列に変換する:

型キャストは、あるデータ型変数を別のデータ型に利用するアプローチであり、単にデータ型を正確に変換するものです。

<?php
   class bag {
      public function __construct( $item1, $item2, $item3){
         $this->item1 = $item1;
         $this->item2 =$item2;
         $this->item3 = $item3;
      }
   }
   $myBag = new bag("Books", "Ball", "Pens");
   echo "Before conversion :".'</br>';
   var_dump($myBag);
   $myBagArray = (array)$myBag;
   echo "After conversion :".'</br>';
   var_dump($myBagArray);
?>

出力:

Before conversion :
object(bag)#1 (3) { ["item1"]=> string(5) "Books" ["item2"]=> string(4) "Ball" ["item3"]=> string(4) "Pens" }
After conversion:
array(3) { ["item1"]=> string(5) "Books" ["item2"]=> string(4) "Ball" ["item3"]=> string(4) "Pens" }

説明:

ここでは、クラス「bag」を作成し、そのクラス内で、オブジェクトの作成時に実行される__construct()関数を宣言しました。コンストラクターは、新しいキーワードを使用してオブジェクトを作成するときに後で提供される引数を受け取ります。最初のvar_dump()式では、単にオブジェクトを出力していますが、2番目のケースでは、型ヒントプロシージャを使用してオブジェクトを配列に型ヒントしています。


  1. PHPのarray()関数

    PHPのarray()関数は配列を作成します。 PHPでは配列には3つのタイプがあります。 インデックス付き配列- 数値インデックス付きの配列です 連想配列- 名前付きキーを持つ配列です 多次元配列- 1つ以上のアレイを持つアレイです 構文 // array with numeric index i.e. Indexed arrays array(value1,value2...); // array with named keys i.e. associative arrays array(key1 => value1, key2 => value2...

  2. C#でバイト配列をオブジェクトストリームに変換するにはどうすればよいですか?

    Streamは、すべてのストリームの抽象基本クラスであり、一連のバイトの一般的なビューを提供します。 Streamsオブジェクトには、読み取り、書き込み、シークなどの3つの基本的な操作が含まれます。ストリームをリセットすると、パフォーマンスが向上します。 バイト配列はメモリストリームに変換できます MemoryStreamクラスを使用します。 MemoryStream stream = new MemoryStream(byteArray); 例 5つの値1、2、3、4、5のバイト配列を考えてみましょう。 using System; using System.IO; namespace D