Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Array: Werte verschieben?

Hallo,

ich hab wieder einmal eine Frage an euch ... :-(

Also, ich habe ein multidimensionelles Array, das ungefähr so aussieht

Code:                   In Zwischenablage kopieren (nur IE)
1">

Gibt es eine Funktion, die Folgendes Schafft:
Code:                   In Zwischenablage kopieren (nur IE)
2">

Man sollte sie praktisch so aufrufen können.........
Code:                   In Zwischenablage kopieren (nur IE)
3">

was folgendes bewirken soll: aus dem array $array soll der 3. wert genommen werden (array(4, "asdf", 2)) und um 2 stellen nach vorne verschoben werden ( also an die erste position )

gibt es sowas? habe lange gesucht und nix gefunden
Hier gehts zum Orginal Eintrag "Array: Werte verschieben?" im Forum

Antworten

meines wissens gibts da keine fertige funktion zu, die ist aber doch schnell geschrieben:
Code:                   In Zwischenablage kopieren (nur IE)
4">

weitgehend ungetestet, dürfte aber funktioniere.


2.

hilf mir bitte nochmal...
es gibt ein kleines problem mit multidimensionellen arrays...
aus
Code:                   In Zwischenablage kopieren (nur IE)
5">

wird
Code:                   In Zwischenablage kopieren (nur IE)
6">

es sollte aber richtigermaßen zu
Code:                   In Zwischenablage kopieren (nur IE)
7">

werden


3.

ach ja, kann man das so machen, das die variable, die den wert der verschiebung enthält auch überlaufen kann?
also wenn insgesamt 10 werte im array vorhanden sind und den vorletzten um 3 nach unten verschiebe, dass ich wieder vorne ankomme?


edit:// was ich noch vergessen habe:
es handelt sich um folgenden aufruf:
array_move($spalter, 1, -1);


4.

na gut, ich schreibs dir nochmal hin, aber eigentlich ist die funktion recht einfach zu verstehen und zu modifizieren (in der urspr. funktion fehlte im aufruf von array_merge() ein array($element)):
Code:                   In Zwischenablage kopieren (nur IE)
8">

die kommentare im quelltext weisen auf die stellen hin wo ich es geändert habe um de elemente zyklisch zu tauschen.


5.

Jo, alles funktioniert, bis auf 2 sachen...
wäre echt super toll, wenn mir jemand nochmals helfen könnte!

1., dass die Variable nicht mehrfach überlaufen kann... weiss ich auch nicht, wie ich das machen soll, ich habe es mit einer while schleife probiert, bin aber nach über 2 stunden immer noch zu keinem ergebnis gekommen ;-(

2. Also, die Variable $ar[1][3] enthält ja 0, wie auch bei allen anderen variablen $ar[x][3].
Falls diese Variable aber nun 1 enthält, soll dieser Eintrag in dem Array nich verschoben werden können.

Den ersten Teil hab ich auch hier schon geschafft, also dass man einen solchen Wert nicht "aktiv" weiter nach unten/oben bringen kann, indem man ihn einfach durch aufruf der funktion verschiebt...

das ist jedoch trotzdem möglich, wenn ich das ganze "passiv mache" also die Anderen Werte so bewege, dass sich der Wert, der sich nicht bewegen soll auch verschiebt...
Sorry, aber hab keinen Plan, wie ich das verhindern kann.

Hier schonmal meine Version ohne "aktives" Verschieben
Code:                   In Zwischenablage kopieren (nur IE)
9">




6.

HALT, STOP! Das erste Problem hat sich erledigt, das habe ich geschafft, ich suche jetzt nur noch nach einer Möglichkeit 2. zu realisieren
(2. Also, die Variable $ar[1][3] enthält ja 0, wie auch bei allen anderen variablen $ar[x][3].
Falls diese Variable aber nun 1 enthält, soll dieser Eintrag in dem Array nich verschoben werden können.

Den ersten Teil hab ich auch schon geschafft, also dass man einen solchen Wert nicht "aktiv" weiter nach unten/oben bringen kann, indem man ihn einfach durch aufruf der funktion verschiebt...

das ist jedoch trotzdem möglich, wenn ich das ganze "passiv mache" also die Anderen Werte so bewege, dass sich der Wert, der sich nicht bewegen soll auch verschiebt...
Sorry, aber hab keinen Plan, wie ich das verhindern kann.
)


Hier gehts zum Orginal Eintrag "Array: Werte verschieben?" im Forum
 
phpforum.de | Impressum