PHPでArrayObjectクラスを使って一歩上の配列処理を目指そう

今回はPHPでArrayObjectクラスを使った処理の方法について解説します。

ArrayObjectクラスは配列をオブジェクトに変換するクラスで、これを使うことで更に高度な配列処理を実現できます。しっかり学んでプログラム開発に役立ててください。

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

以下は連想配列$arrayをArrayObjectクラスを使ってオブジェクトに変換する例です。引数に配列を渡せばオブジェクトして返ってきます。

 

以下が出力例です。ちゃんとオブジェクトとして返ってきました。配列のキーと値はArrayObjectクラスでオブジェクト化されたことでプロパティと呼ばれるようになります。

 

このようにクラスから生成されたオブジェクトをインスタンスと呼びます。インスタンス化することで配列の状態では得られない様々なメリットがあります。

ArrayObjectクラスのメソッド使用例

配列をArrayObjectクラスのインスタンス化することで、各種メソッドを使うことができるようになります。以下に代表的なメソッドを紹介します。

Countメソッド

Countメソッドはプロパティの数を取得するメソッドです。

 

以下の通りプロパティの数(配列で言う値の数)が出力されます。

 

asortメソッド

asortメソッドはプロパティの値で昇順にソートしてくれるメソッドです。

 

結果はご覧の通り値の低い順に並び替えられました。

 

ksortメソッド

ksortメソッドはプロパティのキーを昇順で並び替えてくれるメソッドです。

 

以下の通りキーがアルファベット順に並び替えられました。

 

uasort, uksortメソッドで降順に並び替える

降順に並び替えるメソッドは存在しません。その代わりにuasortメソッドとを使うことで実現できます。uasort, uksortメソッドはコールバック関数を指定し、その関数内で比較関数を使うことで並び替えを実装します。以下はuasortメソッドで指定したDescOrder関数の中で値を降順に並び替えさせています。

 

結果はご覧の通り値を降順に並び替えすることができました。同じ要領でuksortメソッドを使えばキーを並び替えさせることができます。

 

 オブジェクトから配列に戻す方法

最後にオブジェクトから配列に戻す方法について解説します。ArrayObjectクラスにはgetArrayCopyという配列にエクスポートするメソッドが用意されています。これを使うことで配列に戻すことができるわけです。

以下はArrayObjectクラスでインスタンス化されたオブジェクト$objを配列$array2に戻している例です。

 

以下が出力結果です。目的通り配列に戻すことができました。

 

これによって、配列をオブジェクト化することでArrayObjectクラスの各種メソッドが利用でき、そこで処理した後にまた配列に戻すことができるわけです。

まとめ

いかがでしょうか。今回はPHPでArrayObjectクラスを使った処理の方法について解説しました。

ArrayObjectクラスによって配列をオブジェクトに変換することで高度な処理が可能になることがおわかりいただけたかと思います。ぜひ習得して効率的なプログラム開発を目指してください。