![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 18.09.2006
Beiträge: 50
|
Hallo zusammen,
Irgendwie stehe ich total auf dem Schlauch. Ich habe ein assoziative Array. Diese Array heisst $info Code:
array(1) {
[0] => array(4) {
["institut"] => string(24) "Institut1"
["institut2"] => string(27) "Institut2"
["function"] => string(6) "Function"
["function2"] => string(6) "Function2"
}
}
PHP meldet immer einen "Undefined offset: 0".. Warum? Vielen Dank, Chrigu |
|
|
|
|
|
Nach oben #2 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
|
weil es [0][0] nicht gibt. es gibt nur [0]['institut']. Was du bräuchtest wäre wenn dann ein kombiarray, dass sowohl assoziativ als auch numerisch ist.
das würde dann so aussehen: Code:
array(1) {
[0] => array(4) {
["institut"] => string(24) "Institut1"
[0] => string(24) "Institut1"
["institut2"] => string(27) "Institut2"
[1] => string(27) "Institut2"
["function"] => string(6) "Function"
[2] => string(6) "Function"
["function2"] => string(6) "Function2"
[3] => string(6) "Function2"
}
}
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 750
|
...oder
PHP-Code:
PHP-Code:
|
|
|
|
|
|
Nach oben #6 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
|
Die Frage ist doch, wozu ein Assoziatives Array, wenn du letzten endes doch numerisch darauf zugreifen willst.
Erkläre mir bitte, warum das praktischer sein sollte. Ich kann deine PHP-Kenntnisse nicht einschätzen, aber vielleicht findest du es einfach nur praktischer weil du den Umgang mit assoziativen Arrays nicht beherrscht/kennst.
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #7 | |
|
Benutzer
Registriert seit: 18.09.2006
Beiträge: 50
|
Zitat:
So hätte ich dann auf das Feld/Function schliessen können, welches zu diesem Institut gehört.. War das etwa verständlich |
|
|
|
|
|
|
Nach oben #8 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
|
Es gibt 2 Möglichkeiten:
PHP-Code:
PHP-Code:
Das was du suchst?
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #9 |
|
Benutzer
Registriert seit: 18.09.2006
Beiträge: 50
|
Genau das habe ich ja versucht. Aber wenn ich später nicht per Index auf das Feld komme, bringt es nichts..
Habe ich jetzt eine andere Lösung gefunden. Wobei $institut das gesuchte Institut ist. PHP-Code:
Gruss, Chrigu |
|
|
|
|
|
Nach oben #10 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
|
ne ne ne da schau dir lieber array_key_exists() an. das sollte performanter sein als dein preg_match samt schleife.
ansonsten warum nicht damit: PHP-Code:
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #11 |
|
Benutzer
Registriert seit: 18.09.2006
Beiträge: 50
|
Nein, ich glaube du verstehst das Problem falsch. Ich erläutere nochmals..
Code:
array(1) {
[0] => array(4) {
["institut"] => string(27) "Institut XY"
["institut2"] => string(38) "Institut Z"
["function"] => string(6) "Mitarbeiter"
["function2"] => string(6) "Chef"
}
}
Es kann jetzt genau 1 Paar Institut/Function haben, oder 5 Paare, dass ist variabel.. |
|
|
|
|
|
Nach oben #12 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
|
Also hat "Institut XY" einen "Mitarbeiter" und "Institut Z" hat einen "Chef" so richtig?
Dann nutz array_search() und such nach "Institut Z", dann wird dir zurückgeliefert: "institut2", dann darauf ein preg_replace von "institut" nach "funktion" und du bekommst "chef". PHP-Code:
//edit: [ot]mein gott ist es schön mal wieder in php zu denken statt in jsp
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #13 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 609
|
@Warren: Soweit ich weiß, halten Kombi-Arrays die Daten nur in EINEM der beiden Felder und das andere Feld ist eine Referenz darauf, ergo: Ist es in dem Sinne keine doppelte Datenhaltung.
Ansonsten kann man auch einfach das Array nach Key sortieren lassen, dann sind alle Functions vorn, alphabetisch sortiert und alle Institute dahinter. Dann kann man mit reset(), current() und next() die einzelnen Elemente auswählen und durchsuchen. Da man ja aber ohnehin das Array durchsuchen muss, sollte man überlegen, nicht vielleicht direkt eine Schleife zur Array-Verarbeitung zu nutzen. Muss man dann aber selber wissen...
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #14 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
|
Ah das wusste ich nicht.
Wenn er wirklich jeden Eintrag braucht, sollte eine große umfassende Schleife sinnvoll sein, das stimmt. Allerdings war aus seiner "Lösung" eher zu schließen, dass er nur einen Eintrag braucht. Und da ist die schleife aus Performancesicht nicht die beste Lösung.
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #15 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 750
|
Ich würd diese grausige Struktur erstmal umschreiben. Irgendwie so:
PHP-Code:
Basti |
|
|
|
|
|
Nach oben #16 | |
|
Benutzer
Registriert seit: 18.09.2006
Beiträge: 50
|
Zitat:
Gruss, Chrigu |
|
|
|
|
|
|
Nach oben #17 | |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 609
|
Zitat:
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|