no-image

PHPじゃスマートにできない

Tokuhiromさんがsubtechグループ – [email protected]株主の日記 – スマートな解はないかなー

35200 とか 420 とか、中途半端な数値の時に、一番上の数だけを生かして、他をゼロにしたい、というケース。
つまり、30000 とか 400 とかにしたいのね。

と書いていて、イナモデでRubyだと

$ ruby -e ‘ARGV.each{|s|puts s.gsub(/(?!A)d/,

Perlだと

$ perl -pe ‘s/(?!A)d/0/eg’

と書いていたのでPHPだとどうだろうと思って考えた。とりあえず一番上の桁だけ表示して後は0で埋めればいいよねということで

$num = ‘35200’;
$return = $num{0};
for ($i = 1; $i < strlen($num); $i++) { $return .= '0'; } var_dump((int)$return);

とか書いたけど、けいたさんがstr_repeatを使っていたのでマネして

$ php -r ‘$num = “35200”; print($num{0}.str_repeat(0,strlen($num)-1).”n”);’

までもってきた。(値を文字列として代入してるのは許して><キャストすると行数が><)

やっぱりこういうの書こうとするとPHPは絶対負ける。

というか負けるのがPHPの利点なんですけどね。実は。