0

我有两个值:两者都可以是整数或字符串。

我需要以非常特定的格式格式化(使用 PHP)我的输出字符串。

  1. 输出字符串的长度需要为 10。

  2. 第一个变量需要在左侧“对齐”。

  3. 第二个变量需要在右侧“对齐”。

  4. 剩余未使用的字符(如果有)应该用空格填充。

例如:

In:
$var1 = 123456; $var2 = 'XX';
Result:
'123456  XX'

In:
$var1 = 1; $var2 = 9876;
Result:
'1     9876'

有什么想法/建议吗?

4

4 回答 4

2
while(strlen($var1.$var2) < 10)
{    
    $var2 = " ".$var2; // or "&nbsp;" instead of " "
}

$final = $var1.$var2;
于 2013-06-26T13:03:46.297 回答
0

你可以使用str_pad函数。

尝试这个,

$var1 = 12;
$var2 = 'XX';
$max_len = 15;
$output = $var1 . str_pad(' ', $max_len-(strlen($var1.$var2))) . $var2;
echo '<pre>'. $output . '</pre>';

$var1 = 1234;
$var2 = 'XX';
$max_len = 15;
$output = $var1 . str_pad(' ', $max_len-(strlen($var1.$var2))) . $var2;
echo '<pre>'. $output . '</pre>';

您可以将最大长度设置为 $max_len (在您的问题中,它是 10)

http://php.net/manual/en/function.str-pad.php

于 2013-06-26T13:07:42.507 回答
0
for($i = 0; $i < 10 - (strlen($var1) + strlen($var2)); $i++) $result .= " ";
$result = $var1.$result.$var2;
于 2013-06-26T13:14:54.100 回答
0

这是非常粗暴的边缘,但可能会让你开始?

<?php

  function    my_custom_format($var1,$var2){

    $limit  = 10;     
    $total  = strlen($var1.$var2);       
    $spaces = $limit-$total;       
    $string = $var1 . str_repeat('&nbsp;',($spaces<0)?0:$spaces) . $var2; 
    echo      $string;

  }

  $var1     = 1234567890234;
  $var2     = 'XX';

  my_custom_format($var1,$var2);

?>
于 2013-06-26T13:45:06.580 回答