Hallo,
ich versuche mich gerade an einer kleinen Funktion, die die Prüfziffer einer ISBN-10-Nummer berechnen soll. Dazu übergebe ich die ISBN ohne Prüfziffer (die sich an der letzten Stelle befindet) und berechne nach dem Schema:
3-492-04590-?
1x3 + 2x4 + 3x9 + 4x2 + 5x0 + 6x4 + 7x5 + 8x9 + 9x0 = 177 : 11 = 16, Rest = 1
Die Zwischensummen bilde ich in dem String $comma_separated, den ich in ein Array auflöse (kommagetrennt). Nun käme die Summenbildung, aber dabei erhalte ich nicht die erwarteten 177, sondern eine 3.
Kann jemand von euch den Fehler in meinem Skript erkennen? ich stehe gerade echt auf dem Schlauch:
Die Bildschirmausgabe wäre bei diesem Beispiel:
Vielen Dank!
Liebe Grüße
alrescha
ich versuche mich gerade an einer kleinen Funktion, die die Prüfziffer einer ISBN-10-Nummer berechnen soll. Dazu übergebe ich die ISBN ohne Prüfziffer (die sich an der letzten Stelle befindet) und berechne nach dem Schema:
3-492-04590-?
1x3 + 2x4 + 3x9 + 4x2 + 5x0 + 6x4 + 7x5 + 8x9 + 9x0 = 177 : 11 = 16, Rest = 1
Die Zwischensummen bilde ich in dem String $comma_separated, den ich in ein Array auflöse (kommagetrennt). Nun käme die Summenbildung, aber dabei erhalte ich nicht die erwarteten 177, sondern eine 3.
Kann jemand von euch den Fehler in meinem Skript erkennen? ich stehe gerade echt auf dem Schlauch:
PHP-Code:
<?php
function isbnchecksum($isbn10){
$string = $isbn10;
for($i=0;$i<strlen($string);$i++)
{
$explode[$i] = substr($string, $i, 1);
$multiplikator = $i+1;
$zahl[$i] = $explode[$i]*$multiplikator;
$comma_separated = implode(",", $zahl);
}
$summe=array($comma_separated);
$ergebnis=array_sum($summe);
echo "Übergebene ISBN: $isbn10 - die Prüfziffernberechnung beginnt";
echo "<br>Mein zukünftiges Array: $comma_separated<br>";
$a = array($comma_separated);
echo "<br><br>Summe aus dem Array (erwartet 177): = ".array_sum($a)."\n";
}
$isbn = isbnchecksum("349204590");
?>
Übergebene ISBN: 349204590 - die Prüfziffernberechnung beginnt
Mein zukünftiges Array: 3,8,27,8,0,24,35,72,0
Summe aus dem Array (erwartet 177): = 3
Mein zukünftiges Array: 3,8,27,8,0,24,35,72,0
Summe aus dem Array (erwartet 177): = 3
Liebe Grüße
alrescha
Kommentar