| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

05-03-2003, 13:33
|
|
LaHood
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 169
|
|
Assoziative Arrays nach Max sortieren?
Hi,
gibt es eine Möglichkeit ein assoziatives Array nach dem Maxwert zu sortieren?
Ich kann das nicht über die DB machen, da ich die Abfrage mehrere tausend Mal machen müsste, und ich in einem früheren Posting schon gesehen habe, dass dadurch die Scriptzeit massiv in die Höhe schnellt.
bei einem normalen Array kann man ja mit:
PHP-Code:
$maxW = max($ergebnis['Wert']);
den Wert herausbekommen. Nur wie machen ich das wenn ich:
PHP-Code:
ergebnis[$Zaehler]['Wert'];
habe? Ich habe in der Suche einen Link zu einem ähnlichen Posting gefunden, wo ein Hinweis auf 'multi_sort' war, den ich aber nicht ganz nachvollziehen konnte.
Thx
Grüße
cu LaHood
|

05-03-2003, 13:49
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|

05-03-2003, 14:04
|
|
LaHood
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 169
|
|
hmm funkt net:
PHP-Code:
ksort ($ergebnis['Close']);
reset ($ergebnis['Close']);
while (list ($key, $val) = each ($ergebnis['Close'])) {
echo "$key = $val\n";
}
Bekomme dort eine Fehlermeldung.
Warning: Wrong datatype in ksort() call in c:\apache\htdocs\test\firststep.php on line 96
Ich denke mal das liegt daran dass es $ergebnis['Close'] garnicht gibt, sondern nur $ergebnis[$zaehler]['Close']
Grüße
cu LaHood
|

05-03-2003, 14:21
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
Wenn es dies ja nicht gibt, dann kann er dies j auch nicht sortieren.
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|

05-03-2003, 14:39
|
|
LaHood
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 169
|
|
hmm aber das hier macht doch auch keinen Sinn :
PHP-Code:
ksort_($ergebnis[$zaehler]['Close']);
reset_($ergebnis[$zaehler]['Close']);
while_(list_($key,_$val)_=_each_($ergebnis[$zaehler]['Close']))_{
____echo_"$key_=_$val\n";
}
Denn wenn $zaehler einen bestimmten Wert hat bekomme ich als Ergebnis ja auch nur einen einzigen Wert zurück. Dann brauch ich auch nix mehr sortieren
Ich muss aber wissen welchen höchsten Wert es von $ergebnis[$anfang]['Close'] bis $ergebnis[$ende]['Close'] gibt.
|

05-03-2003, 23:29
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
Dann musst du in einer Schleife jeden wert durchgehen. Wenn der Wert höher ist als der alte, speichere diesen dann als neuen höchsten wert...
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
|

05-03-2003, 23:41
|
Günni
Master 
|
|
Registriert seit: Jun 2002
Ort: Landau/Pfalz
Beiträge: 2.589
|
|
Hier ein kleines Beispiel:
PHP-Code:
<?
$werte = array(1,3,48,891,718,892,17,2,74,89,48,99,1000);
$max = 0;
for($i=0;$i<count($werte);$i++)
{
if($werte[$i] > $max) $max = $werte[$i];
}
echo "Größter Wert ist: $max";
?>
oder
max -- Maximalwert bestimmen
Beschreibung
mixed max ( mixed arg1, mixed arg2, mixed argn)
max() liefert den numerisch größten Eingabewert zurück.
Ist der erste Parameter ein Array, so wird der größte Wert innerhalb dieses Array zurückgegeben. Anderenfalls müssen mindestens zwei Parameter übergeben werden, und max() liefert den Wert des größten Parameters zurück. Die Anzahl der Eingabe-Parameter ist nur durch den verfügbaren Hauptspeicher begrenzt.
Ist mindestens einer der Eingabewerte vom Typ double, so werden alle Werte als double behandelt und der Rückgabewert ist ebenfalls vom Typ double. Anderenfalls werden alle Eingabewerte als int behandelt und auch ein int zurückgegeben.
__________________
mfg
Günni
Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
City-Tiger - Online durch die Straßen tigern...
Geändert von Günni (06-03-2003 um 02:01 Uhr)
|

06-03-2003, 09:24
|
|
LaHood
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 169
|
|
ok dein Scriptbeispiel sollte den Maxwert liefern.
PHP-Code:
<?
___
____$max_=_0;
____
____for($i=0;$i<count($row);$i++)
____{
________if($$ergebnis[$i]['Close']_>_$max)_$max_=_$ergebnis[$i]['Close'];
____}
____
____echo_"Größter_Wert_ist:_$max";
?>
Allerdings scheint es mir so dass ich die max() Funktion nicht auf das Array anwenden kann, da mein Array nicht so:
PHP-Code:
$werte_=_array(1,3,48,891,718,892,17,2,74,89,48,99,1000);
sondern so aussieht:
PHP-Code:
$ergebnis[$i]['Close']
Naja ich werde das mit der Schleife erstmal machen
Grüße
cu LaHood
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|