JavaScript→PHPに多次元配列を渡す
PHPにデータを渡すために、POSTを使うが、POSTは一次元配列しか渡せない。この制限を回避するために、いろいろな方法があるようだ。
参考リンク:
jQueryのAjaxで多次元配列をPOST - ゆっくり*ゆっくり
JSで作った多次元配列をPOSTでPHPに渡す方法 | MiLKySHADe * ミルキーシェイド
ハッシュを使わないなら、JSONに一度変換して、PHP側でデコードするのが一番楽そうだと分かった。
JavaScript側
var ary = [ [92, 88, 64, 86], [78, 92, 96, 81], [68, 56, 84, 70] ]; var aryJSON = JSON.stringify(ary); $.ajax({ async: true, type: "POST", url: "ajax.php", data: { Ary : aryJSON } }).done(function( msg ) { //なんか処理 });
PHP側
$ary = json_decode($_POST['Ary']); for($i=0; $i<count($ary); $i++) { for($j=0; $j<count($ary[i]); $j++) { //$ary[i][j]を利用してなんか処理 } }
こんな風にできた。オブジェクトを渡したり、連想配列を渡したりした場合は、まだどうなるか不明。