php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.09.2004, 00:28  
Gast
 
Beiträge: n/a
Standard Referenzen (lies Pointer) innerhalb mehrdimensionaler Arrays

Hallo zusammen,

folgendes Problem treibt mich zur Zeit um...

1.) Array $A enthält eine Baumstruktur in einer nicht brauchbaren Form

2.) Dieses Array soll rekursiv durchlaufen werden und ein neues Array $B mit der "richtigen" Struktur dabei erzeugt werden.

Code:
Struktur von $B ['start']['eins']['eins.eins']
                         ['zwei]
                         ['drei']['drei.eins']['drei.zwei'] ... usw
Um innerhalb des rekursiven Durchlaufs von $A neue Elemente in $B zu erzeugen brauche ich eine Referenz auf die aktuelle Ebene, in der ich in $B gerade etwas anhängen möchte.

Etwas in der Art von:


Code:
$pointer = & $A['start']['eins'];
...
$pointer['zwei'] = "foo";
funktioniert leider so nicht. Ich weiß, dass es in PHP keine Pointer a la C gibt. Deshalb nun meine Frage:

Wie kann ich innerhalb des Rekursionsablaufes die aktuelle Position im zu erzeugenden Array mitgeben? Dann könnte ich entweder mit mit $B[] = "foo" oder mit magischerPointer($B)['bar'] = 'foo' auf das Array zugreifen. :P


Eine (schlechte ) Idee, die ich im Moment habe ist es, den PHP Code für die Zuweisung wärend der Laufzeit zu erzeugen und in einem File abzulegen... diesen dann per include einzubinden...... vielleicht geht das ja auch eleganter, sprich OHNE files

Danke für jede Hilfe oder Info-Quelle

Tom
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 17.09.2004, 07:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard Re: Referenzen (lies Pointer) innerhalb mehrdimensionaler Ar

Zitat:
Zitat von tomlug
Code:
$pointer = & $A['start']['eins'];
...
$pointer['zwei'] = "foo";
Das ergibt:
Code:
$A['start']['eins']['zwei'] = 'foo';
Da aber 'zwei' wohl ein Sibling von 'eins' darzustellen scheint, hier:

Code:
$pointer = & $A['start'];
...
$pointer['zwei'] = "foo";

Aber grundsätzlich kann ich nicht so genau überblicken, was du da treibst ...
Guradia ist offline   Mit Zitat antworten
Alt 17.09.2004, 14:00  
Gast
 
Beiträge: n/a
Standard

Hallo Guradia,

Danke für die Antwort.... versuche mich deutlicher auszudrücken

Zitat:
Das ergibt:

Code:
$A['start']['eins']['zwei'] = 'foo';
Genau so hätte ich es gerne... leider passiert folgendes:

Code:
$A['a']['b']['c'] = "foo";
$pt = & $A['a']['b']['c'];
// XDebug zeigt: pt (string) = "foo"
$pt['x'] = "bar";
// XDebug zeigt: pt (string) = "boo"
// und wie erwartet A['a']['b']['c'] = "boo"
$pt ist also vom Typ String und NICHT Array...

Versuche mit $pt = (array) $A[...] scheiterte schon am Parser

Der Referenzopperator funktioniert (in dieser Schreibweise) bei Arrays leider nicht.


Gruß, Tom
  Mit Zitat antworten
Antwort


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
Referenzen auf Objekte innerhalb eines Arrays PHP-Fortgeschrittene 6 31.08.2009 17:06
[Erledigt] Problem mit Referenzen auf Arrays PHP-Fortgeschrittene 4 16.09.2005 23:13
[Erledigt] Zahl innerhalb eines Arrays ausgeben PHP Tipps 2005 22 29.04.2005 13:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php pointer, pointer php, mehrdimensionale pointer, mehrdimensionaler zeiger, pointer php rekursiv, javascript array zeiger, php pointer to array, php array zeiger, javascript zeiger array, php array referenzen, pointer in php, php pointer referenz, php array pointer, pointer mehrdimensionale arrays, zeiger auf mehrdimensionales array, javascript zeiger auf array, php referenzen auf arrays, php verweis auf mehrdimensionales array, php aktuelle position im array, php array iterieren per pointer

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 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.