Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Array verschachtelung

Hallo
habe mal ne frage zu arrays
und zwar:

ich habe ein array
$entry = explode ("|;|", $zeile);
dieses wird aus einer Textdatei ausgelesen.

so jetzt gibt es natürlich mehrere zeilen, so dass ich das array irgendwie unter einem andern array speichern muss.

$neues_array[] = $entry

Achja das geschicht natürlich alles in einer schleife, wo nacheinander die zeilen ausgelsen werden.

$neues_array[] = $entry
das ist aber syntaktisches nicht richtig soweit ich weiß, hat da jemand ne andere idee?

Komischerweise hat das auf dem lokalen Server alles geklappt, aber dann auf dem andern Server natürlich nicht mehr wo es hinsoll... ;D

gruß
der_webi


ps: hier nochmal die whileschleife

while ($zeile)
{
  $zeile = fgets($datei,100);
  $entry = explode ("|;|", $zeile);
  $neues_array[] = $entry;
 
}
« Letzte Änderung: 23.01.07, 12:52:55 von der_webi »

Antworten zu Array verschachtelung:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

Meiner Ansicht nach ist das syntaktisch schon korrekt so. Die Schreibweise $neues_array[] = $entry ist nur eine andere Form von array_push($neues_array, $entry).

Gibt's denn auf dem Zielserver eine Fehlermeldung? Vielleicht liegt das Problem ja ganz woanders.

Übrigens: in vielen Fällen ist es gar nicht notwendig, die ganze Datei in verschachtelte Arrays zu laden. Oftmals kann man die Daten auch gleich direkt in der Schleife verarbeiten, z.B. ausgeben.

Und nochwas: für das zeilenweise Auslesen von Dateien kannst du die Funktion file() verwenden, das macht die Sache wesentlich komfortabler ;)

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo
Also
Was mir gerade noch aufgefallen ist, dass der Sript beim erstenmal durchläuft, Wenn ich dann einen link anklicke, kommt folgende Fehlermeldung:

Warning: Invalid argument supplied for foreach() in /opt/apache/htdocs/CKSadmin/leiter/navi.php on line 44

Zeile 44 ist eine foreach schleife
foreach ($thema as $wert) 
warum tut die beim erstenmal und beim zweitenmal nicht?

hier mal der ganze code:
auskommenteirt und natürlich etwas schwieriger als das beispiel von eben
aber ich denke zu verstehen

<?
$fp="navi.txt";
$datei=fopen($fp, "r");
$zeile = true;
$x=0;
$y=0;
while ($zeile)
{
  $zeile = fgets($datei,100);
  $anfang = substr($zeile, 0, 2);

  if($anfang!='//')
  # // in der Textdatei bedeutet kommentar, also soll es nicht gelsesn werden
  {

    if($anfang=='++')
    ##++beudeutet oberkategorie
    {
    $entry = explode ("|;|", $zeile);
    $thema[$x] = $entry;
    #wenn ich das nicht mit $x mache, dann kommt fehlermeldung, aber geht ja so auch
    $x++;

    }
    elseif($anfang=='--')
    ##-- bedeutet unterkategorie
    {
      $entry = explode ("|;|", $zeile);
      $unterthema[$y] = $entry;
     //selbe wie mit $x
      $y++;

    }

  }
}
fclose($datei);


?>
<table class="navi" cellpadding="7px">



<?php

#ausgabe für die themen
foreach ($thema as $wert)
{
  echo "<tr><td class=&#39;td_thema&#39;><a class=&#39;thema&#39; href=&#39;index.php?thema=".$wert[1]."&#39;>".$wert[2]."</a></td></tr>\n";
   #ausgabe für die untertheman
    foreach ($unterthema as $navi)
    {
       if($_GET["thema"]==$navi[2] AND $wert[1]==$navi[2])
       {
       echo "<tr><td class=&#39;td_unterthema&#39;><a class=&#39;unterthema&#39; href=&#39;index.php?thema=".$navi[2]."&unterthema=".$navi[1]."&#39;>$navi[3]</a></td></tr>\n";
      }
  }
}
?>



</table>

Also warum ich das nicht gleich in der while schleife ausgeben, ist dass ich das array noch mal wieder brauche, nicht in der navigation, sondern auf was anderem.


vielen dank

der_webi

achja
noch die textdatei vielleicht

also jetzt mal 2 beispiele
++|;|2|;|Kategorie2|;|
--|;|4|;|2|;|Befehl2|;|
« Letzte Änderung: 23.01.07, 13:20:19 von der_webi »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ups...
 Ein blöder fehler den man mal wieder erst durch zufall sieht.
Achtet mal dadrauf mit welches $_GET variablen ich arbeite.
Die heißen genauso, wie die beiden array....


naja tut jetzt wenn jemand die navigation haben will, muss er nur die arrays oder get variablen umbennen, soweit ich gesehen habe

gruß und nochmal danke
der_webi


« [PHP] wait FunktionNeues Projekt -> Frage zu Datenbank und Zugriff »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Application Server
Ein Application Server, zu deutsch Anwedungsserver, ist ein Netzwerkrechner (Server) auf dem verschiedenste Anwendungsprogramme ausgeführt werden können. Der Be...

Printserver
Der Printserver ist ein Rechner im Netzwerk, der den Datenfluß zu einem oder mehreren Druckern steuert und eingehende Druckaufträge in einer Warteschlange verw...

Server
Der Begriff Server stammt aus dem englischen und bedeutet "Diener". In der EDV bezeichntet Server entweder eine Software- oder Hardwarekomponente.   Als Software, ...