假设我的变量$foo
的长度介于1到10之间。
并且变量$bar
的长度为12,最初设置为Iamheretopad
。
我想用第一个变量覆盖第二个变量右对齐。
一些例子:
$foo $bar
1 Iamheretopa1
123 Iamhereto123
123456 Iamher123456
答案 0 :(得分:4)
如果$ bar是12个字符长而$ foo是5个字符长,那么你想要$ bar的前7个字符,7是长度的差异(12-5)。
$bar = substr($bar, 0, length($bar)-length($foo)) . $foo;
或者,如果$ foo的长度为5个字符,则可以替换$ bar的最后5个字符。
substr($bar, -length($foo)) = $foo;
顺便说一句,如果你想用空格或零填充,你可以使用sprintf
。
$bar = sprintf('%12s', $foo); # Spaces, constant size
$bar = sprintf('%*s', $size, $foo); # Spaces, variable size
$bar = sprintf('%012s', $foo); # Zeroes, constant size
$bar = sprintf('%0*s', $size, $foo); # Zeroes, variable size