Was fragt diese zeile ab: if -$i % $spalten == 0-

Hallo,

Kann mir jemand weiterhelfen bei dieser Zeile:
if ($i % $spalten == 0)
was genau passiert hier, bzw. wird hier abgefragt?
also was macht das % da?
Ich brauche die Zeile so, bzw. muss sie vermutlich abänder weis aber eben nicht genau was sie eigentlich macht.

Danke schonmal für eure Hilfe

Hallo,

das %-Zeichen führt die Funktion MODULUS aus. Diese ermittelt den Rest von $i geteilt durch $spalten. ==0 prüft, ob dieser Rest 0 ist.

Kurz gesagt dürfte die Abfrage ermitteln, ob sich die Schleife in der letzten Spalte befindet.

Gruß,
Matthias

Hallo,

Kurz gesagt dürfte die Abfrage ermitteln, ob sich die Schleife
in der letzten Spalte befindet.

und wie müsste es heißen, wenn geprüft werden soll ob sich die Schleife in der erste Spalte befindet? oder ist das komplizierter?

Hallo,

% ist der „Modulo“ Operator, das heißt er berechnet den Rest beim Teilen.

5 % 2 ist also 1,
14 % 3 ist also 2,
10 % 2 ist also 0.

Das heißt in deinem Fall es wird überprüft, ob $i geteilt durch $spalten den Rest 0 ergibt, vermutlich um dann einen Zeilenumbruch oder so etwas in einer Tabelle zu machen.

Gruß
Croydon

Ohne das Programm drumherum zu kennen ist das etwas fiktiv…

Da die erste Spalte sicherlich die 1 ist würde ich die Schleife mit $i=1 beginnen und dann ist if( $i==1 ) die erste Spalte…

Gruß
Matthias

Hallo Meri19,

das ist einfach! :smiley: Mit dem „%“ wird der Modulus einer Zahl ermittelt.
http://php.net/manual/de/language.operators.arithmet…

Modulus ist der „Restwert“ bei einer Multiplikation. Sprich 4 % 3 = 1
(3 passt einmal in die 4 Rein, restwert = 1)

In den Algorithmen wird mit Modulo gerne der x. eines Elements in einer Schleife bestimmt. In deinem Fall wird vermutlich in der Variable $spalte eine Zahl stehen, wie viele Spalten angezeigt werden sollen. Es könnte Z.b. 4 Spalten dargestellt werden. Bei einer Schleife wo $i immer um 1 erhöht wird, ist bei jedem 4 Element in Schleife der Modulo == 0.

Hoffe ich konnte dir damit eine Erklärung geben, die einigermaßen verständlich ist. Bei Fragen kannst dich ja einfach wieder melden.

Viele Grüße
Frank

Meinte Natürlich „Division“ (Teilen als /) nicht Multiplikation -.- sorry…

Lg Frank

Hallo Meri,

Das „%“-Zeichen ist das sogenannte Modulo-Zeichen und steht für die ganzzahlige Division mit Rest.

Zum Beispiel: 3 % 2 = 1 oder 21 % 7 = 0
HIer ein Link mit mehr Informationen dazu:

http://de.wikipedia.org/wiki/Division_mit_Rest

Deine Code-Zeile

if ($i % $spalten == 0)

bedeutet dann:
Die if-Bedingung ist wahr wenn "Der Wert der Variable $i ein Vielfaches der Spalten(anzahl) ist. Also kein Rest bleibt.

Hoffe das hilft Dir weiter.

Viele Grüße,
Mag

Es wird getestet, ob der Inhalt $i geteilt durch den Inhalt von $spalten teilbar ohne Rest ist. % ist der sogenannte Modulo-Operator.

Beispiel:
$i = 10
$spalten = 5

10 durch 5 = 2 Rest 0

=> das if trifft zu

$i = 11
$spalten = 5

11 durch 5 = 2 Rest 1

=> if trifft nicht mehr zu

Das Prozentzeichen bedeutet Modulo und bedeutet in etwa soviel wie einen Wert durch eine ganze Zahl teilen und den Rest als Ergebnis zurück bekommen.

die If-Abfrage macht eigentlich nix anderes als $i durch $spalten zu teilen und zu prüfen ob der Rest 0 ist

Halo meri19,

siehe hier:

http://php.net/manual/de/language.operators.arithmet…