0

我正在尝试使用sprintf使 PHP 变长。这是我使用的代码:

<?php
echo sprinf ("%*s | %*s | %*s | %*s\r\n%*s | %*s | %*s | %*s\r\n",
6,"Monkey", 7,"Cats", 7,"Giraffe", 6,"Goat",
6,"Goat", 7,"Giraffe", 7,"Cats", 6,"Monkey")
?>

预期的:

Monkey | Cats    | Giraffe | Goat
Goat   | Giraffe | Cats    | Monkey

结果:

s | s | s | s
s | s | s | s

所以,我做了我自己的功能:

<?php
function _sp($p,$str){
    $pAkhir=$p-strlen($str);
    if($pAkhir<0)$pAkhir=0;
    $pStr=null;for($i=0;$i<$pAkhir;$i++)$pStr.=chr(32);
    return $str.$pStr;
}
?>

因此:

<?php
echo sprintf ("%s | %s | %s | %s\r\n%s | %s | %s | %s\r\n",
_sp(6,"Monkey"),_sp(7,"Cats"),_sp(7,"Giraffe"),_sp(6,"Goat"),
_sp(6,"Goat"),_sp("Giraffe"),_sp(7,"Cats"),_sp(6,"Monkey"))
?>

有没有更有效的方法,使用原生 PHP 函数?

4

1 回答 1

0

我认为@zerkms 的答案适合表示:str_pad()。这比编写新函数更有效。

于 2013-08-13T08:48:59.020 回答