【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を使うと見やすくていい。