使用for循环从2D阵列打印方程式

时间:2015-11-12 00:31:41

标签: php arrays

$string = 3;

for ($i=0; $i<$string; $i++) {

  for($j=0; $j<$string; $j++) { 

    print $arr[$i][$j] = rand(1,5); 

}

  print "<br>";

}

基本上这段代码会输出类似

的内容

5 5 4

2 5 2

4 5 3

我想在屏幕上打印类似5 + 5 + 4 + 2 + 5 + 2 + 4 + 5 + 3 = 35

我尝试了多种方法,但是在正确的位置打印+时我很难挣扎。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您可以使用以下代码:

$arr = array();
$string = 3;
$temp = array();
$sum = 0;

for ($i=0; $i < $string; $i++) {

    for($j=0; $j<$string; $j++) { 

        $arr[$i][$j] = rand(1,5); 
        $sum += $arr[$i][$j];
        $temp[] = $arr[$i][$j];
    }

}

echo implode(' + ', $temp).' = '.$sum;

结果:

2 + 5 + 3 + 3 + 4 + 2 + 5 + 3 + 1 = 28

编辑(没有implode函数[评论中的OP请求]):

$arr = array();
$string = 3;
$temp = '';
$sum = 0;

for ($i = 0; $i < $string; $i++) {
    for($j = 0; $j < $string; $j++) {  
        $arr[$i][$j] = rand(1,5);
        $sum += $arr[$i][$j];
        if ($i == ($string - 1) && $j == ($string - 1)) {
            $temp .= $arr[$i][$j];
        } else {
            $temp .= $arr[$i][$j].' + ';
        }
    }
}

echo $temp.' = '.$sum;

结果:

1 + 2 + 1 + 3 + 2 + 3 + 5 + 4 + 5 = 26