php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.08.2005, 16:52  
Neuer Benutzer
 
Registriert seit: 04.08.2005
Beiträge: 24
Cosmo
Standard Komplizierter array_push()

Hallo!

Ich habe ein array, in dem ich den Werten jeweils einen Feldnamen zugeordnet habe.

Also zum Beispiel:

$test = array("12"=>"Tim","14"=>"Torben", "3"=>"Sven");

Nun möchte ich diesem array weitere Werte zuweisen.
Ich habe mir gedacht, dass ich das so mache:

array_push($test, ""7"->"Peter"");

Aber das klappt nicht. Wenn ich die äußeren "" weglasse ebenfalls nicht. Aber es muss doch irgendwie gehen, oder etwa nicht?

Wäre sehr dankbar, wenn mir da jemand helfen könnte.
Cosmo ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.08.2005, 16:53  
Gast
 
Beiträge: n/a
Standard

RTFM!
http://www.php.net/manual/de/language.types.string.php
 
Alt 04.08.2005, 17:18  
Neuer Benutzer
 
Registriert seit: 04.08.2005
Beiträge: 24
Cosmo
Standard

Jau! Danke!
Das war sicherlich auch ein Problem.

Aber grade ist mir aufgegangen, dass das nicht gehen dürfte.

Denn was ist, wenn ich einen Index vergebe, der schon vergeben ist? Dann gibt es einen Konflikt.

Gibts da irgend ne Lösung, oder geht das schlichtweg nicht?!
Cosmo ist offline  
Alt 05.08.2005, 00:19  
Gast
 
Beiträge: n/a
Standard

http://de.php.net/array_push
Zitat:
int array_push ( array &array, mixed var [, mixed ...] )
Da steht nirgend etwas vom Index. Der wird, wie bei $arr[] automatisch vergeben.
Wenn Du selbst den Index setzen willst, dann weise das Element einfach per $test[7]='Peter' zu.
Ein Index ist eindeutig in einem Feld, weist Du erneut einen Wert zu, überschreibst Du den vorherigen.
 
Alt 05.08.2005, 00:49  
Neuer Benutzer
 
Registriert seit: 04.08.2005
Beiträge: 24
Cosmo
Standard

Hmmm, also irgendwie kommt das nicht hin.

Ich beschreibe einfach mal das Problem im Ganzen.

Ich habe zwei Arrays
Im ersten sind Namen, im zweiten sind Punkte

Nun will ich das ganze absteigend sortiert ausgeben.
Nur wenn ich das Punkte Array sortiere, dann stimmen die zugehörigen Namen im anderen Array nicht mehr.

Daher wollte ich in dem Namensarray den Namen als Feldnamen die Punktzahl zuordnen.
Dann kann ich das Namensarray nach dem Feldnamen sortieren (krsort) und das Punktearray nach Wert (arsort)

Nur isses leider so, dass ich die Arrays erst Fülle. Dazu muss ich sie pushen, und das klappt nicht.

Mir fällt leider sonst keine einfachere Methode ein, das Punkte Array zu sortieren, so dass ich hinterher noch die Namen zu ordnen kann :-/

Wäre echt froh, wenn mir da jemand einen Typ geben kann :-/

Also ich möchte eigentlich
Cosmo ist offline  
Alt 05.08.2005, 01:35  
Gast
 
Beiträge: n/a
Standard

Warum liegen die beiden BEstandteile Name und Punkt denn in zwei Feldern vor? Läßt sich nicht daran schon etwas von Anfang an ändern?

Ansonsten helfen Dir http//php.net/array_multisort und/oder evtl. http://php.net/array_combine weiter.

Zitat:
Wäre echt froh, wenn mir da jemand einen Typ geben kann :-/
Array
 
Alt 05.08.2005, 02:04  
Neuer Benutzer
 
Registriert seit: 04.08.2005
Beiträge: 24
Cosmo
Standard

*autsch*
Ja, Typ ... *hehe*

dieses array_combine wäre genau das was ich brauche, aber leider unterstützt mein Provider PHP5 nicht.

Multisort sortiert beide Arrays unabhängig von einander.
Gut wäre es, wenn es ein Array sortiert und das andere genauso.

Namen und Punkte sind deshalb in zwei verschiedenen Arrays, weil ich sie aus einer db auslese und dann so abspeichere.

Aber ich könnte es auch in einem Speichern, nur kann ich es dann ja noch weniger sortieren.
Ach is das alles verzwickt :-/
Cosmo ist offline  
Alt 05.08.2005, 02:41  
Gast
 
Beiträge: n/a
Standard

array_multisort sortiert die Felder nicht unabhängig; andernfalls wäre die Funktion total redundant.

Zitat:
Namen und Punkte sind deshalb in zwei verschiedenen Arrays, weil ich sie aus einer db auslese und dann so abspeichere.
und warum das?
 
Alt 05.08.2005, 18:28  
Neuer Benutzer
 
Registriert seit: 04.08.2005
Beiträge: 24
Cosmo
Standard

Hmm, ja, sehe grade, dass er tatsächlich sortiert... na mal schauen.

Die Frage nach dem "warum" ist recht schnell beantwortet: Weil ich blutiger Anfänger bin und mir nicht besser zu helfen weiß.
Hab da was von left outter join gehört und Werte gleich in der DB sortieren und einzelnen einlesen, aber das ist mir jetzt einfach zu kompliziert.

Derzeit lese ich Namen und Punkte ein und speichere diese in der db.
Name1@Name2@...
Punkte1@Punkte2@...

Wenn ich nun die Highscore ausgeben will, ziehe ich die DB Einträge und fülle sie mit explode in zwei arrays.

Und ich merke grade, dass der Kram immer umfangreicher und komplexer wird, weil ich Tonnenweise von Arrays in den Code drücke :-/

Um dem ganzen Realitätsbezug zu verleihen: Es handelt sich um eine Bowlingstatistik.Ergo gibt es pro Name 3*Punkte.
Und nicht nur Punkte, sondern das ganze auch noch mit Strikes, Spares etc.
Cosmo ist offline  
Alt 05.08.2005, 19:28  
Neuer Benutzer
 
Registriert seit: 04.08.2005
Beiträge: 24
Cosmo
Standard

So!
Jetzt habe ich das endgültig hingekriegt!

Vielen Dank an alle, die mir geholfen haben

Gruß
Cosmo
Cosmo ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
komplizierter MySQL Join Broadcast Datenbanken 5 20.09.2007 11:10
[Erledigt] komplizierter regulärer Ausdruck PHP-Fortgeschrittene 2 26.12.2005 20:00
[Erledigt] komplizierter join PHP Tipps 2005-2 6 23.06.2005 09:11
Datenbankeintrag etwas komplizierter... PHP Tipps 2005 2 28.04.2005 12:04
Komplizierter Select PHP Tipps 2005 17 08.03.2005 12:21
[Erledigt] komplizierter query mit LEFT JOINs und relationen Datenbanken 2 03.09.2004 11:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bowlingstatistik, arraay_push zwei werte, array_push test=>, array_push werte vergeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.