Php 组合宽度短跑

Php 组合宽度短跑,php,formatting,printf,Php,Formatting,Printf,我有两个字符串,我想结合,并没有超过一定的宽度 $string = sprintf("%4(%s %s)", $s1, $s2); //s1 s 请注意,合并的%s%s的宽度没有超过4 如何使用sprintf实现这一点 谢谢 我不知道如何使用sprintf,但你可以使用它 $string = substr("$s1 $s2",0,4); 这将返回相同的结果您可能需要为问题添加更多细节-如果字段长度超过3个字符(4-1个空格),您希望发生什么情况 但也许这就是你想要的: sprintf("%.

我有两个字符串,我想结合,并没有超过一定的宽度

$string = sprintf("%4(%s %s)", $s1, $s2);
//s1 s
请注意,合并的%s%s的宽度没有超过4

如何使用sprintf实现这一点


谢谢

我不知道如何使用sprintf,但你可以使用它

$string = substr("$s1 $s2",0,4);

这将返回相同的结果

您可能需要为问题添加更多细节-如果字段长度超过3个字符(4-1个空格),您希望发生什么情况

但也许这就是你想要的:

sprintf("%.4s", "$s1 $s2");
这将输出组合字符串
“$s1$s2”
,并将其删减为4个字符。当然substr也会这样做,这在较长格式字符串的上下文中可能很有用


老实说,我以前没有意识到精度说明符(
后接数字)可以与
%s

一起使用,现在我已经有了它们(就像你一样),但我认为printf中可能有一种方法。谢谢@tau,另一种方法可能是使用strlen计算填充宽度,这将为您提供更大的灵活性(例如,如果您希望左对齐
$s1
和右对齐
$s2
,但要共享尽可能多的空间)。