php problem mit array

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von lordlamer, 26.11.2004.

  1. #1 lordlamer, 26.11.2004
    Zuletzt von einem Moderator bearbeitet: 26.11.2004
    lordlamer

    lordlamer Haudegen

    Dabei seit:
    15.05.2003
    Beiträge:
    703
    Zustimmungen:
    0
    Ort:
    hamburg
    hallo!

    meine problembeschreibung:

    ich hab nen string wie diesen hier:
    <string>
    a.b.c.d = test
    config.test = wert
    a.b.c = nochn wert
    </string>

    ich möchte das aus diesem string ein array gebaut wird der dann so aussieht:

    $AR['a']['b']['c']['d'] = "test";
    $AR['config']['test'] = "wert";
    $AR['a']['b']['c'] = "nochn wert";

    nun habe ich dafür eine klasse erstellet:
    Code:
    <class>
    <?php
    
    class script {
    	var $script = array();
    	
    	function load($constants = "",$setup = "") {
    		$tmpsetup = explode("\n",$setup);
    
    		foreach($tmpsetup as $value) {
    			$value = strtr($value," ","");
    			$value = strtr($value,"\n","");
    			$value = strtr($value,"\r","");
    						
    			$this->script = $this->AddToArray($this->script, $value, "testwert");
    		}
    	}
    
    	
    	function AddToArray(&$temp, $key, $value) {
    		// $AR = Das Array wo die ganzen werte reinkommen
    		// $key = zum Bleistift mein.toller.wert
    		// $value = Der Wert des Keys
    		//$temp =& $AR;
    		//echo $key;
    		$keysplit = explode(".", $key);
    		
    		for($i=0; $i<count($keysplit); $i++) {
    			if(!isset($temp[$keysplit[$i]])) {
    				$temp[$keysplit[$i]] = array();
    			}
    			
    			$temp =& $temp[$keysplit[$i]];
    		}
    		$temp = $value;
    		return $temp;
    	}
    }
    
    ?>
    </class>
    
    in meinem script mache ich dann
    Code:
    $b = array();
    
    $a = new script();
    $a->script = &$b;
    
    $a->load("","a.b.c.d");
    $a->load("","a.b");
    
    dabei bekomme ich dann folgende meldung:

    Warning: array_values(): The argument should be an array in /www/typoeasy/index.php on line 32


    hat jemand ne idee wie ich das lösen kann? oder nen hinweis. bin für jeden tip dankbar!

    mfg frank
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 avaurus, 26.11.2004
    avaurus

    avaurus °°°°°°°°°°°°°

    Dabei seit:
    28.12.2003
    Beiträge:
    965
    Zustimmungen:
    0
    ich hab schon garkeinen Bock das Gewurschtel da oben durchzusehen, obwohl ich dir helfen möchte und deswegen rate ich dir, das komplette Script noch einmal zu überarbeiten, denn so wie es aktuell aufgebaut ist, ist es doch eine Qual für Jedermann, denn was ist denn nun a, b oder c? Sind das Testdaten? Wenn ja, dann ziemlich schlechte, denn das sagt mir spontan nix. Und dann das Gewurschtel mit "isset" *shiver*. Entweder man fragt logisch ab und ist dann auch übersichtlicher oder man macht es mit "isset" ;)...

    Nächster Punk: Wo ist hier Zeile 32? Wäre doch hilfreich, wenn man sich direkt die fehlerhafte Zeile ansehen könnte, würde viel schneller gehen.

    Ps.: es gibt auch php-bb-code:
    PHP:
    print "Halleluja.\n";

    for (
    $run=0$run<100000000$run++)
    {
        
    touch($run.".haha");
    }
     
  4. #3 lordlamer, 26.11.2004
    lordlamer

    lordlamer Haudegen

    Dabei seit:
    15.05.2003
    Beiträge:
    703
    Zustimmungen:
    0
    Ort:
    hamburg
    was heisst den bitte logisch abfragen?

    der fehler befindet sich in zeile 32 ;) copy pase in nen editor und dann siehst du wo zeile 32 ist. aber ich geb sie nochmal wieder:

    $temp =& $temp[$keysplit[$i]];


    das ist sie.

    ja und es sind testdaten. und es sind keine schlechten. die testdaten sollen ja auch nix aussagen. sie sollen ja nur in einem array wieder gespiegelt werden ala

    conf.htmlfile = /pfad/zur/datei

    wird zu

    $AR['conf']['htmlfile'] = "/pfad/zur/datei";

    mehr isses net ;) *G*

    hast du den ideen?
     
  5. #4 avaurus, 26.11.2004
    avaurus

    avaurus °°°°°°°°°°°°°

    Dabei seit:
    28.12.2003
    Beiträge:
    965
    Zustimmungen:
    0
    *rofl*, dann kannste das auch selber machen.
     
  6. #5 lordlamer, 26.11.2004
    lordlamer

    lordlamer Haudegen

    Dabei seit:
    15.05.2003
    Beiträge:
    703
    Zustimmungen:
    0
    Ort:
    hamburg
    hey hab dir die zeile doch noch gepostet welche das war :)

    so böse bin ich ja nu auch net *G*
     
  7. #6 avaurus, 26.11.2004
    avaurus

    avaurus °°°°°°°°°°°°°

    Dabei seit:
    28.12.2003
    Beiträge:
    965
    Zustimmungen:
    0
    Beitrag hast du aber trotzdem nicht editiert. Man kann das wirklich sehr schlecht lesen.
     
Thema:

php problem mit array

Die Seite wird geladen...

php problem mit array - Ähnliche Themen

  1. in_array Problem

    in_array Problem: Hi, ich habe ein php-Script geschrieben und ein in_array-Konstrukt wird einfach nicht mMn korrekt ausgeführt. Jedenfalls erfolgt keine Anzeige...
  2. Verständnisproblem mit array in bash

    Verständnisproblem mit array in bash: Hi zusammen für jedes der Elemente in meinem Skript möchte ich eine Aktion starten und bei Erfolg das Element aus dem Array löschen. Das...
  3. Array-Problem aus einer C-Bibliothek in C++

    Array-Problem aus einer C-Bibliothek in C++: Hallo zusammen, ich habe da eine API die in C geschrieben wurde und würde diese gern in ein C++-Programm einbinden. Über extern "C" {...
  4. Problem mit dynamischem zweidimensionalen Array

    Problem mit dynamischem zweidimensionalen Array: So, vielleicht 'ne doofe Frage aber ich hab' da ein kleines Problem... Hocke an einem Programm, was einen eingegebenen Text u.a. in seine...
  5. Linkerproblem mit MXE

    Linkerproblem mit MXE: Hallo Leute :winke:, ich war echt lange nicht mehr hier... Wie auch immer, ich schreibe gerade ein Programm, das sowohl Qt5, als auch OpenMP...