---
title: "Modulus-10"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/172151-modulus-10"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "greyhound"
published: "2008-06-12T13:23:29.000Z"
updated: "2008-06-19T20:23:13.000Z"
replies: 3
views: 746
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/172151-modulus-10"
---

# Modulus-10

## #1 — greyhound, 2008-06-12T13:23Z

Jag håller på att skriva en funktion i PHP som genererar en fil till Posten.
Dokumentet som ska följas heter IG_Transportinstruktion_Flatfil2_1.39.pdf och finns att ladda ner på adressen: <http://www.posten.se/img/cmt/FriStorlek/transportinstruktion.zip>

På ett ställe där står det att jag ska skriva en "Checksiffra modulus-10 för belopp i ören.". Hur jag än gör lyckas jag inte lösa detta. Jag testade en funktion som jag hittade men den stämde vad jag vet.

Någon som har några tips?

Permalänk: https://www.webforum.nu/p/172151

## #2 — Ekström, 2008-06-12T13:28Z

Mod 10 innebär väl i det sammanhanget inget annat än ett heltal 0 \>= x \<= 9? Var du sen ska få checksiffran ifrån eller om det är din att godtyckligt sätta vet jag inte.

Permalänk: https://www.webforum.nu/p/2117858

## #3 — spango, 2008-06-12T15:01Z

Är det den här algoritmen du tänker på? <http://en.wikipedia.org/wiki/Luhn_algorithm>

Permalänk: https://www.webforum.nu/p/2117882

## #4 — greyhound, 2008-06-19T20:23Z

Det slutade med att jag fick göra en egen funktion, mest bara för att jag skulle förstå hur det funkade.

Jag fick ett svar från posten som sa att de använde samma sätt att räkna ut checksiffran som Bankgirot och skulle därför fråga de om hur man räknade ut den. Som tur var hittade jag denna <http://www.bgc.se/upload/Gemensamt/Trycksaker/Manualer/10-MODUL.pdf> som förklarade allt på ett mycket lätt och bra sätt.

Min funktion:

```php
function mod10check($value) {
  $value = strrev($value);
  $base = 2;
  $sum = 0;
  for ($i = 0; $i <= strlen($value) - 1; $i++) {
    $prod = $value{$i} *  $base;
    if ($prod > 9) {
      $sum = $sum + 1 + $prod % 10;
    } else {
      $sum = $sum + $prod;
    }
    if ($base == 1) {
      $base = 2;
    } else {
      $base = 1;
    }
  }
  return (ceil($sum/10) * 10) - $sum;
}
```

Permalänk: https://www.webforum.nu/p/2119221

---

Tråden på webben: https://www.webforum.nu/amne/php/172151-modulus-10
