[PHP] Array Aufteilung

Dieses Thema im Forum "Webentwicklung" wurde erstellt von SeXy, 17. Oktober 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 17. Oktober 2006
    Array Aufteilung

    Moin!
    Ich habe ein Array, welches folgenden Aufbau hat:
    [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(5) "66085" [3]=> string(7) "1587199" [4]=> string(5) "23349" [5]=> string(7) "3618608" [6]=> string(1) "0" [7]=> string(2) "50" [8]=> string(5) "70155" [9]=> string(4) "1160" [10]=> string(1) "0" [11]=> string(1) "0" [12]=> string(1) "0" [13]=> string(11) ""127.0.0.1"" [14]=> string(8) "".PuNkT"" [15]=> string(2) """" [16]=> string(1) " "

    Zur besseren Darstellung noch einmal der Quelltext:
    Code:
    array(17) {
     [0]=>
     string(1) "1"
     [1]=>
     string(1) "1"
     [2]=>
     string(5) "66085"
     [3]=>
     string(7) "1587199"
     [4]=>
     string(5) "23349"
     [5]=>
     string(7) "3618608"
     [6]=>
     string(1) "0"
     [7]=>
     string(2) "50"
     [8]=>
     string(5) "70155"
     [9]=>
     string(4) "1160"
     [10]=>
     string(1) "0"
     [11]=>
     string(1) "0"
     [12]=>
     string(1) "0"
     [13]=>
     string(11) ""127.0.0.1""
     [14]=>
     string(8) "".PuNkT""
     [15]=>
     string(2) """"
     [16]=>
     string(1) "
    "
    }
    Das habe ich mit folgendem Code erzeugt (War vorher ein String):
    PHP:
    $buffer  fread ( $this -> fs , 10000 );
                
    $buffer  str_replace ( "\n" , "<br />" , $buffer );
                
    $buffer  str_replace ( "OK" , " " , $buffer );
                
    $buffer  explode  ( "<br />" $buffer );
                
    $i  "0" ;
                while (
    $i  count ( $buffer )) {
                    
    $buffer [ $i ] =  explode ( "\t" $buffer [ $i ]);
                    
    $i ++;
                }
    Folgendes stört mich aber an dem Array:
    Es soll nicht die Aufteilung "[1]=> bla" haben sondern "[variable]=> wert".
    Wie kann ich am Besten irgendwo vor der while Schleife festlegen, dass das Array später so aufgebaut werden soll? Es wird ja schließlich durch den explode erzeugt.
     
  2. 17. Oktober 2006
    AW: Array Aufteilung

    Ich würde eine neue schleife machen welche dir die änderungen vornimmt,da ich hier nicht erschließen kann was "variable" sein soll und was "wert" sein soll ?! Sehe hier nur einen Variablenwert (wie z.B. '127.0.0.1').

    FlowFlo
     
  3. 17. Oktober 2006
    AW: Array Aufteilung

    Naja, das Array hat ja Schlüssel (Key) z.B. ['0'] und wert (value) z.B. 127.0.0.1 Sprich ['key']=>value.
    Nun heißen die keys in dem Falle ja 0, 1, 2 usw. und die möchte ich umbenennen. Das Problem bei der Sache ist, dass das gesamte Array das ich gepostet habe eine value in einem übergeordneten Array ist. Es wird ja einmal mit explode ein Array erzeugt, welches die einzelnen Zeilen in ein Array speichert. Dort sollen die Keys durchnummeriert bleiben. Aber in den untergeordneten values, welche auch Arrays sind, sollen die keys nicht nummeriert sein, sondern Namen haben.
     
  4. 17. Oktober 2006
    AW: Array Aufteilung

    Schon klar.
    Erstma grundsätzlich .. $foo[1] dort ist die 1 nicht der key sondern der index. Der Key wird in quotes gesetzt, was in deinem fall aber nicht so ist sonder die indexes sind angegeben.

    Umbenennen ist doch kein problem, einfach noch eine Schleife machen in dem du den array durchgehst wo du das dann komfotabel ändern kannst seh dein problem nicht ..

    FlowFlo
     
  5. 17. Oktober 2006
    AW: Array Aufteilung

    Mein Problem ist, dass ich keine Ahnung habe, wie die Schleife aussehen muss, da ich den Befehl nicht kenne, um die indexes umzubenennen und ich keine Ahnung habe, wie ich das aufbauen muss.
     
  6. 17. Oktober 2006
    AW: Array Aufteilung

    0_o
    $foo['keyname'] = $foo[1];
    Meinst du das ?

    Code:
    $arrayausneuemnamen = array('first', 'second');
    
    for($i = 0; $i <= count($deinarray); $i++) {
     $deinarray[$arrayausneuemnamen[$i]] = $deinarray[$i];
    }
    
    echo $deinarray['first'];
    
     
  7. 17. Oktober 2006
    AW: Array Aufteilung

    Sooo, fast haben wirs. Vielen vielen Dank für deine Mühe!

    Ich werd erstmal an die frische Luft gehen. Vielleicht kann sich das ja noch mal jemand anschauen:

    PHP:
    $buffer  fread ( $this -> fs , 10000 );
                
    $buffer  str_replace ( "\n" , "<br />" , $buffer );
                
    $buffer  str_replace ( "OK" , " " , $buffer );
                
    $buffer  explode  ( "<br />" $buffer );
                
    $i  "0" ;
                
    $meinarray  = array( "p_id" "c_id" "ps" "bs" "pr" "br" "pl" "ping" "logintime" "idletime" "cprivs" "pprivs" "pflags" "ip" "nick" "loginname" );
                while (
    $i  count ( $buffer )- 1 ) {
                    
    $buffer [ $i ] =  explode ( "\t" $buffer [ $i ]);
                    for(
    $j  0 $j  <=  count ( $meinarray )- 1 $j ++) {
                        
    $newarray [ $i ][ $meinarray [ $j ]] =  $buffer [ $i ][ $j ];
                    }
                    
    $i ++;
                }
    Bekomme immernoch die notices:
    Notice: Undefined offset: 1 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 2 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 3 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 4 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 5 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 6 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 7 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 8 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 9 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 10 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 11 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 12 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 13 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 14 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Notice: Undefined offset: 15 in C:\Software\Internet\WebServer\xampp\htdocs\entwicklung\class\neu.php on line 70

    Warum weiß ich nicht.
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.