六帖のかたすみ

DVを受けていた男性。家を脱出して二周目の人生を生きています。自閉症スペクトラム(受動型)です。http://rokujo.org/ に引っ越しました。

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]を利用してなんか処理
	}
}

こんな風にできた。オブジェクトを渡したり、連想配列を渡したりした場合は、まだどうなるか不明。