对齐字符串中的两个值(PHP)

时间:2013-06-26 12:59:24

标签: php string algorithm data-manipulation

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

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

  1. 输出字符串的长度必须为10.

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

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

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

  5. 例如:

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

    有任何想法/建议吗?

4 个答案:

答案 0 :(得分:2)

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

$final = $var1.$var2;

答案 1 :(得分: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

答案 2 :(得分:0)

for($i = 0; $i < 10 - (strlen($var1) + strlen($var2)); $i++) $result .= " ";
$result = $var1.$result.$var2;

答案 3 :(得分: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);

?>