2次元配列をループして、列の組み合わせの合計を自動的に取得しようとしています。
4列の$aという配列があるとします:0,1,2,3、
$a=array();
$a[0][0]=1;
$a[0][1]=3;
$a[0][2]=5;
$a[1][0]=10;
$a[1][1]=2;
$a[1][2]=5;
$a[1][3]=7;
$a[2][0]=9;
$a[2][1]=8;
$a[2][2]=9;
$a[2][3]=8;
$a[3][0]=9;
$a[3][1]=8;
$a[3][2]=9;
$a[3][3]=8;
$a[3][4]=1;
そして、私はこのコードを使用して、sum(0,0; 1,0; 2; 0,3; 0)などの列のすべての組み合わせを合計しようとしています
for($i=0;$i<count($a[0]);$i++){
for($l=0;$l<count($a[1]);$l++){
for($s=0;$s<count($a[2]);$s++){
for($m=0;$m<count($a[3]);$m++){
echo $sum[]= $a[0][$i]+$a[1][$l]+$a[2][$s]+$a[3][$m];
echo $sum;
echo "<br>";
}
}
}
}
?>
そして、コードは機能します。問題は、これらのforループを手動で実行していることです。列数のカウントを挿入することで、これを単純化できる方法が必要ですか?
私は次のようなことを試みました
$numberofcolumns=4;
for($n=0;$n<$numberofcolumns;$n++){
for($i=0;$i<count($a[$n]);$i++){
for($m=0;$m<count($a[$n+1]);$m++){
echo $sums[]= $a[$n][$i]+$a[$n+1][$m];
}
}
}
しかし、それは機能しません。forループを単純化して、各列にforループを手動で入力する必要がないようにする方法が必要です。
誰か手がかりがありますか?