【PHP】オブジェクトと連想配列。相互変換する

クライアントとAjaxで通信するときにJavaScriptでは連想配列がない(自動でオブジェクトになる)のでObjectをJSONにして送信するけど、サーバー(PHP)側では連想配列として扱いたい場合に変換するメモ。

単純にループすればできるけど、こんな感じで一括でできるみたい。

//POSTされてきたjsonデータを連想配列にする
$objData = json_decode($this->json);
$aList = (array) $objData;

詳しくはPHPマニュアルの「配列への変換」を参照。privateなメンバ変数があった場合に気を付ける必要があるみたいだけど、JSONの場合は問題ないはず。

JSONとのやり取りについては前の記事も参考に。

jQueryを使ってPHPとJSON形式のデータをやり取りする方法

ちなみにarrayをObjectにも変換できるので、次のように書いた方がコード量が減る場合もある。

$obj = (object) array('name'=>'hoge');

作った配列やオブジェクトをデバッグするときはdBugを使うと見やすくていい。

サンプルはデモサイトを見ればわかりやすいし、前の記事の「デバッグ関数」のところも参加なるかも。