JANコードのチェックデジットを計算する
protected function calculateCheckDigit($code)
{
// JANコードの前12桁を取得
$checkCode = substr($code, 0, 12);
$sum = 0;
for ($i = 0; $i < strlen($checkCode); $i++) {
// 奇数桁は1、偶数桁は3をかけて足す
$sum += (($i+1) % 2 == 0 ? 3 : 1) * $checkCode[$i];
}
// 総和の下1桁の数字を10から引く、10なら1の位は0なので、下1桁をチェックデジットとする
$CheckDigit = (10 - $sum % 10) % 10;
// チェックデジットが一致しない
if ((int)$CheckDigit != (int)substr($code, 12, 1)) {
return false;
}
return true;
}
More than 1 year has passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme