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;
}

今回のレポートは以上です。
読んでいただいてありがとうございました。


ホームページに関するお悩み事やご相談事がございましたら私どもまでご連絡ください。 鋭意ご対応申し上げます。
ホームページのご提案もさせていただいております