両方の知識がないため理解できていません。
http://blog.tojiru.net/article/135554038.html
欲しい回答は↑にある、任意の配列を水平方向につなぎ合わせたjsのソースコードです。
func_get_args, (array)など現状理解できず書きなおすのにも時間掛かりそうなため質問させていただいております。
以下phpサンプル
function combine() {
$args = func_get_args();
$a = array_shift($args);
$b = array_shift($args);
$result = array();
foreach ($a as $val1) {
foreach ($b as $val2) {
$result[] = array_merge((array)$val1, (array)$val2);
}
}
if (count($args) > 0) {
foreach ($args as $arg) {
$result = combine($result, $arg);
}
}
return $result;
}
$p = array("男","女");
$q = array("小","中","高","大","専","院");
$r = array("北海道","本州","四国","九州","沖縄","海外");
print_r(combine($q,$p,$r));
#print_r(combine($p,$q, $r)); OK
#print_r(combine($r,$p, $q)); OK
そのまま移植したつもり。合ってるかな…。
http://jsfiddle.net/cherenkov/xqc3v/2/
<script> function combine() { var args = Array.prototype.slice.call(arguments); var a = args.shift(); var b = args.shift(); var result = []; a.forEach(function(val1) { b.forEach(function(val2) { if (!(val1 instanceof Array)) { val1 = [val1]; } result.push(val1.concat(val2)); }); }); if (args.length > 0) { args.forEach(function(arg) { result = combine(result, arg); }); } return result; } var p = ["男","女"]; var q = ["小","中","高","大","専","院"]; var r = ["北海道","本州","四国","九州","沖縄","海外"]; // var t = combine(p, q, r); // document.write(JSON.stringify(t)); var t = combine(r, q, p); document.write(JSON.stringify(t)); </script>
すみません。修正しました。
2012/11/12 15:52:30ご連絡遅くなりましたがことら少し修正し使わせて頂きました。助かりましたmm
2012/11/15 22:43:17