2016-03-28 28 views
0

我有一个对齐多维数组中的数字的问题。我想打印以下结果:如何正确对齐数组中的数字在PHP中?

1 2 3 4 
12 13 14 5 
11 16 15 6 
10 9 8 7 

而且我希望所有数字都与下一行的第二位数字对齐。但是我的结果是:

1 2 3 4 
12 13 14 5 
11 16 15 6 
10 9 8 7 

我这样做是在C#中使用:

for (int col = 0; col < matrix.GetLength(1); col++) 
{ 
    Console.Write("{0,4}", matrix[row, col]); 
} 

但我怎么能接受这个结果在PHP?

+0

你可以使用'table'这一点。 –

+0

你的输出模式是什么?它是标准输出还是HTML? –

+0

它是HTML。没有使用'table'的字符串格式没有任何功能? – ManIp

回答

0

您可以使用str_pad

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); 
$test = ''; 

foreach ($arr as $key => $value) { 

    if ($key % 4 == 0) { 
     $test .= "\n"; 
    } 

    $test .= str_pad($value, 4, ' ', STR_PAD_LEFT); 
} 

echo "<pre>$test</pre>"; 

其结果将是:

1 2 3 4 
    5 6 7 8 
    9 10 11 12 
    13 14 15 16 
+0

为什么不使用''printf''?在PHP中是''printf('%4d',$ value);''不等于''Console.Write(“{0,4}”,matrix [row,col]);''在C#中? – ub3rst4r