我有两个值:两者都可以是整数或字符串。
我需要以非常特定的格式格式化(使用 PHP)我的输出字符串。
输出字符串的长度需要为 10。
第一个变量需要在左侧“对齐”。
第二个变量需要在右侧“对齐”。
剩余未使用的字符(如果有)应该用空格填充。
例如:
In:
$var1 = 123456; $var2 = 'XX';
Result:
'123456 XX'
In:
$var1 = 1; $var2 = 9876;
Result:
'1 9876'
有什么想法/建议吗?
我有两个值:两者都可以是整数或字符串。
我需要以非常特定的格式格式化(使用 PHP)我的输出字符串。
输出字符串的长度需要为 10。
第一个变量需要在左侧“对齐”。
第二个变量需要在右侧“对齐”。
剩余未使用的字符(如果有)应该用空格填充。
例如:
In:
$var1 = 123456; $var2 = 'XX';
Result:
'123456 XX'
In:
$var1 = 1; $var2 = 9876;
Result:
'1 9876'
有什么想法/建议吗?
while(strlen($var1.$var2) < 10)
{
$var2 = " ".$var2; // or " " instead of " "
}
$final = $var1.$var2;
你可以使用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)
for($i = 0; $i < 10 - (strlen($var1) + strlen($var2)); $i++) $result .= " ";
$result = $var1.$result.$var2;
这是非常粗暴的边缘,但可能会让你开始?
<?php
function my_custom_format($var1,$var2){
$limit = 10;
$total = strlen($var1.$var2);
$spaces = $limit-$total;
$string = $var1 . str_repeat(' ',($spaces<0)?0:$spaces) . $var2;
echo $string;
}
$var1 = 1234567890234;
$var2 = 'XX';
my_custom_format($var1,$var2);
?>