dynamische array

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Hoi allemaal,

Ik heb een method gemaakt waarmee ik op een simpele in een array kan zoeken.
bv.
$data = Person::get("dit:wil:ik:hebben")
is gelijk aan
$data = $person["dit"]["wil"]["ik"]["hebben"]

Maar nu wil ik op de zelfde manier een variable toevoegen
bv.
Person::set("nieuwe data", "dit:wil:ik:hebben")
moet het volgende doen
$person["dit"]["wil"]["ik"]["hebben"] = "nieuwe data"

Heeft iemand een idee hoe ik dit aan kan pakken, loop er helemaal op vast!
 
Als je een routine hebt om een veld op te halen dan heb je al een routine die het jusit veld aanwijst, dus wat let je om niet "return bladebla" te doen maar "bladebla[]=$nieuwekey"?

Het is natuurlijk koffiedikkijken als je geen code toont he :)
 
Okey, jij wilt zien...komtie
PHP:
    static public function get($data_path)
    {
        
        if(is_array($data_path)) {
            $looper = self::$_config;
            $length = count($data_path) - 1;
            for ($i=0; $i <= $length ; $i++) {
                if(isset($looper[$data_path[$i]])){
                    $looper = $looper[$data_path[$i]];
                } else {
                    $looper = Null;
                }
            }// end for loop
            return $looper;
        } else if(is_string($data_path)) {
            $path = trim($data_path,": ");
             return self::get(explode(":", $data_path));
        }
    }
 
Ah, recursie. Dus je haalt hier uiteindelijk al $looper op en geeft die terug. Wat houd je tegen om $looper aan te vullen met de nieuwe waarde?
 
omdat loper de waarde heeft van de plek in de array. het is niet de plek in de array, het is een copy
 
mm zal eens proberen, maar het niet veel vertrouwen in @. Maar niet geprobeerd weet je nooit zeker.

Maar een andere manier kan ik me niet verzinnen om het dynamisch te maken
 
Okey @ werkt als een droom, wat ik zei. ik had het niet verwacht!

PHP:
    static public function reset_data($path, $data)
    {
            $keys = explode(":", $path);
            $looper = @self::$_config;
            $length = count($keys) - 1;
            for ($i=0; $i <= $length ; $i++) {
                if(isset($looper[$keys[$i]])){
                    $looper = @$looper[$keys[$i]];
                }
            }// end for loop
        $looper = $data;
    }
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan