如何正确打印 2D 阵列


How to correct print 2D array

我创建了一个二维数组

class MyArray
{
    public $arr=array();
    public function create()
    {
        for($i=0;$i<=4;$i++)
        {
            for($j=0;$j<=4;$j++)
            {
                $this->arr[$i][$j]=0;
            }
        }
    }
    public function print()
    {
        for($i=0;$i<5;$i++)
        {
            for($j=0;$j<5;$j++)
            {
                echo $this->arr[$i][$j] . " ";
            }
        }
    }
}
$arr1= new MyArray();
$arr1->create();
$arr1->print();

但是当我显示它时,它看起来像这样:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

该怎么做才能看起来像这样:

0 0

0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

0 0 0 0 0

只需在内部for循环后添加一个 <br /> 标记,如下所示:

public function print(){
    for($i=0;$i<5;$i++){
        for($j=0;$j<5;$j++){
            echo $this->arr[$i][$j] . " ";
        }
        echo "<br />";
    }
}

由于我不知道您是否正在制作网页,因此您需要echo/print换行符'n或 HTML 中断(<br><br />)作为MyArray::print外循环中的第二条语句,具体取决于上下文(HTML5 或 HTML 4.01/XHTML 1.0)。

这是

单行打印,因为您没有使用换行符。
您需要在另一个 for 循环中添加<br>,如下所示:

public function print(){
 for($i=0;$i<5;$i++){
    for($j=0;$j<5;$j++){
        echo $this->arr[$i][$j] . " ";
    }
    echo "<br />";
 }
}