ホームページ制作 オフィスオバタ

PHP 4桁ごとにハイフンを入れる

例えば、問い合わせ番号などユニークな番号を発番する方法はいろいろとありますが、12桁を超えると「見にくい」「認識しにくい」番号になります。
4桁ごとにハイフンを入れると見やすくなるので、PHP適当な関数がないかと探したら、数字3桁ごとにカンマを入れるものはありましたが、アルファベットが混ざるとNGでした。

なので、オリジナルで作成してみました。
今回は、指定桁ごとに文字を挟む関数の忘備録です。

やりたいことは以下のような作業

例えば「AW7392S0HJEIR3」というような半角英数字の文字列を
「AW73-92S0-HJEI-R3」という風に4桁ごとにハイフンを入れます。

条件は
・桁数は一定ではない
・半角文字のみである

この条件で処理を作ってみました。

 

組み込みでのコード

取り急ぎPHPで組んでみました。

// コード指定
$code = “AW7392S0HJEIR3”;

//出力コード初期化
$out_code = null;

// コードを4桁ごとに分割
$in_code = str_split($code, 4);

for($cnt=0 ; $cnt < (sizeof($in_code)-1)) ; $cnt++) //桁数分ループ
{
//ハイフンセット
$out_code .= $in_code[$cnt] . “-“;
}

// 最後の文字列をセット
$out_code .= $in_code[(sizeof($in_code)-1)];

 

せっかくなので、関数化してみました。

汎用性を高めるために、桁数を任意の指定桁数、区切り文字を任意の文字にしてみました。
全角には対応していませんが、取り急ぎこんな感じになります。

function hyphen_set($code, $digit=4, $set_char=”-“)
{

//出力コード初期化
$out_code = null;

// コードを指定桁ごとに分割
$in_code = str_split($code, $digit);

for($cnt=0 ; $cnt < (sizeof($in_code)-1)) ; $cnt++) //桁数分ループ
{
//ハイフンセット
$out_code .= $in_code[$cnt] . $set_char;
}

// 最後の文字列をセット
$out_code .= $in_code[(sizeof($in_code)-1)];

// 処理終了
return $out_code;
}

モバイルバージョンを終了