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 関数を使用して、より効率的な方法はありますか?