我有两个值:两者都可以是整数或字符串。
我需要以非常特定的格式格式化(使用PHP)我的输出字符串。
输出字符串的长度必须为10.
第一个变量需要在左侧“对齐”。
第二个变量需要在右边“对齐”。
剩余的未使用字符(如果有)应填充空格。
例如:
In:
$var1 = 123456; $var2 = 'XX';
Result:
'123456 XX'
In:
$var1 = 1; $var2 = 9876;
Result:
'1 9876'
有任何想法/建议吗?
答案 0 :(得分:2)
while(strlen($var1.$var2) < 10)
{
$var2 = " ".$var2; // or " " 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)
答案 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(' ',($spaces<0)?0:$spaces) . $var2;
echo $string;
}
$var1 = 1234567890234;
$var2 = 'XX';
my_custom_format($var1,$var2);
?>