max()

T

Tex

ich hab' ein meinem php-script folgende zeilen enthalten:

$vorhanden = file("artikel.txt");
$maximal = max($vorhanden);

in der artikel.txt stehen einfach die zahlen von 1 bis 10 untereinander. fragt nicht wieso das so ist, es ist hald so ;)

jetzt gibt mir max aber nicht 10 aus sondern 9. mein ganzes script funktioniert also nur bis neun und sobald es 2-stellig wird, geht es nicht mehr.

und nein, count oder so ist auch keine möglichkeit für mich. ich muss die höchste zahl herausfiltern.

woran kann das liegen?
 
Könnte mir vorstellen das 10 nicht als zehn sondern als 1 und 0 angesehen wird und somit nicht die größte Zahl ist. Aber sonst kein Plan........:> :>

Tob
 
Ich denke das der max() befehl mit 0 beginnt wie z.b.: die listbox in vb also addiere einfach 1 dazu dann wird schon gehen

mfg Wolfman
 
nein, wenn ich händisch die zahlen von 1 bis 10 eingebe, filtert er mir 10 heraus. das ist eigenartig. und wenn ich dann zu dem array[9](also wert 10) eins dazuzähle wird es aber zu 11. kann es sein, dass er den typ nicht automtisch richtig umwandelt. wenn ja, wie kann man manuell einen string in einen int-wert umwandeln?
 
komisch

Ich hab's jetzt getestet und weis woran es liegt:

File liefert ein array von string-vars.

Damit du dein Ergebnis hast, musst du wohl diesen Trick anwenden:

<?php
$a = file($filename);
for ($i=0;$i<count($a);$i++)
settype($a[$i],"integer");
// nach diesem liefert dir max() das korrekte Ergebnis
$maximaleAnzahl = max($a);
?>

Viel Spass damit!
 
ja, auf das mit der stringkette bin ich auch schon gekommen, nur wusste ich nicht, wie ich es beheben soll, thx.

ps: ich hab' das ganze script jetzt schon ein wenig umgeschrieben, sodass es funkt.
 

Neue Beiträge

Zurück