monotone blog

人生は楽しむためにある!素敵な人生は幸せな毎日から♪ 田舎で気ままに暮らすフリーランスSEの日常を綴るブログ。

IT・コンピュータ 備忘録 独り言

PHPでJANコードのチェックディジットを計算する

投稿日:

先日、JANコード(GTIN-13)を生成する処理を書く機会があったので、チェックディジット(検査数字)取得方法のメモを残しておきます。

JANコードに必要なチェックディジットは「モジュラス10/ウェイト3」と呼ばれるタイプで、下記のように求めるそうです。

1. 偶数桁の数字の総和を算出する
2. (1)の計算結果を3倍する
3. 奇数桁の数字の総和を算出する
4. (2)の計算結果と(3)の計算結果を加算する
5. (4)の計算結果の下1桁の数字を「10」から減算した値を「チェックデジット」とする
6. (4)の計算結果の下1桁が「0」の場合は、チェックデジットは「0」とする

というわけで、PHPだと次のようなコードで取得できます。

function getCheckDigit( $value )
{
	$arr_num = str_split( $value );
	$odd_sum = 0;
	$even_sum = 0;
	for( $i = 0; $i < count( $arr_num ); $i++ ){
		if(( $i + 1 ) % 2 == 0 ){
			$even_sum += intval( $arr_num[$i] );
		}
		else{
			$odd_sum += intval( $arr_num[$i] );
		}
	}
    $check_digit = 10 - intval( substr((string)( $even_sum * 3 ) + $odd_sum, -1 ));
    return $check_digit === 10 ? 0 : $check_digit;
}// getCheckDigit()







-IT・コンピュータ, 備忘録, 独り言

執筆者:

関連記事

no image

キムチ鍋

今日は、妻の友人達が引越祝いを持って遊びに来てくれました。 (家を建てたわけでは無いので、別に祝ってもらうことでもないんですが(^^;) で、夕食はみんなでキムチ鍋を食べました。うまかった~。 今週末 …

no image

WordPress 2.7

WordPressの最新版2.7が公開されたので、早速アップグレードしてみました。 今回はメジャーバージョンアップということで、管理システムの方がかなり変わっています。 少し使ってみて問題ないようであ …

娘の誕生日♪

今日は、娘の誕生日でした♪(毎年書いてますが)早いもので、もう4才になりました。 というわけで、朝から家族揃ってプレゼントを買いに行き、昼食は、主役である娘の希望でココスへ。(恐るべし、ドラえもん人気 …

no image

このブログは移転しました

このブログは、https://monotone.jp/ に移転&リニューアルオープンしました。 こちらの過去ログも残しておく予定ですが、今後の更新は新ブログのみになりますので、ブックマークやRSS購読 …

no image

新婚さんいらっしゃい!

先日、異業種交流会で知り合った方が、「新婚さんいらっしゃい!」に出演されたということで、録画して観てみました。 この番組、子供の頃に観た記憶があるのですが、まだやってたんですね。いやぁ、本当にビックリ …