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