miau_jpさんより、Twitter入電!素敵な方法を教えていただきました。
$keta = 4;
// 文字列
$test = "24578455";
$result = substr($test, -$keta);
// 数字
$test = 24578455;
$result = $test % pow(10, $keta);
// 指定桁数未満の場合0で埋めるなら
$result = sprintf("%04s", substr($test, -$keta));
スッキリしました。miau_jpさん、どうもありがとうございます!
—以下元の記事
例えば
24578455の下4桁、8455を取得したいとき、皆さんならどうやります?
多分セオリー的なやり方はあるんでしょうけど、僕はわからないので、
$test = "24578455";
var_dump(strrev(sprintf("%-04.4s", strrev($test))));
こんな風に訳のわからない方法*1 でやってるんですが、お優しい方助言いただけたら幸いです。
- strrevで文字を反転させて頭4桁取得、4桁未満なら0埋、で、最後にstrrevで再反転してます。愚かですよね…orz [↩]
コメント
substr()を使った方法が間違ってますよ。
正しくは
substr($test, -$keta)
ですね。
dairaさん、こんにちは。
教えていただいたmiau_jpさんにも正しい方法をお聞きしたのですが、おバカな僕が書くときにミスしたようです…orz
間違いのご指摘、ありがとうございました!