2012-04-07 7 views
1

Ich habe eine Zeile mit Daten, die Zahlen und Aufteilungen von '-' enthält, etw so: 2012-421-020-120407 Jetzt möchte ich eine Paritätsziffer (0 oder 1) bei erzeugen Das Ende dieser Zeichenfolge in meinem PHP-Code. Aber Ich habe keine Ahnung, wie es geht. Wenn ja, es ist sogarGenerate Parity digit in php

Vielen Dank im Voraus

Antwort

1

Wenn Sie Ihre Zahlen haben, verwenden Sie %, um zu bestimmen, ob die Zahl durch 2 teilbar ist. Wenn nicht, ist es seltsam. Sammeln Sie Ihre Parität von diesem Ergebnis.

$numbers = "2012-421-020-120407"; 
$numbers_array = explode("-", $numbers); 

print_r($numbers_array); // [0]=>2012 [1]=>421 [2]=>020 [3]=>120407 

foreach ($numbers_array as &$number) 
    $number .= ($number % 2 == 0) ? 0 : 1 ; 

print_r($numbers_array); // [0]=>20120 [1]=>4211 [2]=>0200 [3]=>1204071 

Wenn Sie die Parität der Summe der Zahlen mögen, können Sie versuchen, den folgenden:

$numbers = "2012-421-020-120407"; 
preg_match_all("/[0-9]+/", $numbers, $matches); 

$parity = array_sum($matches[0]) % 2 ; 

echo $parity; // Outputs 0 or 1 
+0

ersten Dank für Ihre Antwort, Sie meinen ich diese Zahlen verwenden: 2012-421-020- 120407? Wie benutzt man% um hier zu bestimmen? Vielleicht sollte ich zuerst die Summe finden? Ich weiß es nicht! bitte mach es sauber. Danke –

+0

@MattStone Möchten Sie die Parität der Summe aller Zahlen finden? Oder jede Zahlengruppe einzeln? Oben zeige ich Ihnen, wie Sie dies für jeden Satz von Zahlen erreichen, der in der explodierten Zeichenkette resultiert. – Sampson

+0

Er sagt eine Parität, also nehme ich an, es sollte nur eine sein, die sie summiert yp – unsym