Max: Suche Optimierungsmöglichkeit für Array

Hallo!

Ich benötige einen Array, in den ich ggf. im Code eine Datei einschieben könnte, ohne dass ich alle nachfolgenden Zahlen verändern muss.

Mein Ansatz (der auch funktioniert) ist folgender:
 $d=0;
 $dateien[$d]="../inhalte/about.html";
 $d++;
 $dateien[$d]="../inhalte/bilder.html";
 $d++;
 $dateien[$d]="../inhalte/links.html";
 $d++;
 $dateien[$d]="../inhalte/main.php";
 $d++;
 $dateien[$d]="../inhalte/onoff.html";
 $d++;
 $dateien[$d]="../inhalte/wallpapermain.html";

usw.

Leider benötigt der ohnehin schon lange Array jetzt noch mehr Platz - ließe sich das irgendwie noch optimieren?

$dateien[$d++] klappt nur teilweise (die erste Datei wird irgendwie nicht beachtet),
$dateien[$d=$d++] klappt gar nicht,

Gibt es vielleicht noch eine andere Schreibweise?

Gruß

Mastershrimp

  1. hi,

    Ich benötige einen Array, in den ich ggf. im Code eine Datei einschieben könnte, ohne dass ich alle nachfolgenden Zahlen verändern muss.

    hä, wie meinen?

    Mein Ansatz (der auch funktioniert) ist folgender:
     $d=0;
     $dateien[$d]="../inhalte/about.html";
     $d++;
     $dateien[$d]="../inhalte/bilder.html";
    usw.

    Leider benötigt der ohnehin schon lange Array jetzt noch mehr Platz - ließe sich das irgendwie noch optimieren?

    "platz" im sinne von platz beim schreiben des scriptes meinst du?
    vernachlässigbare größe, _speicherplatz_ im RAM während der ausführung wäre ein kritischeres kriterium.

    > $dateien[$d++] klappt nur teilweise (die erste Datei wird irgendwie nicht beachtet),

    $dateien[$d=$d++] klappt gar nicht,

    wie sieht's mit

    $dateien[0]="../inhalte/about.html";
    $dateien[]="../inhalte/bilder.html";
    $dateien[]="../inhalte/links.html";
    $dateien[]="../inhalte/main.php";
    $dateien[]="../inhalte/onoff.html";
    $dateien[]="../inhalte/wallpapermain.html";

    aus?

    wenn du nur klammern schreibst, und keinen index angibst, legt PHP automatisch ein neues array-element an.

    gruss,
    wahsaga

    1. hä, wie meinen?

      Wenn ich den Array: a,c,d,e habe und noch ein b einfügen möchte, müsste ich bei einem vornummerierten Array alle Array-Einträge nach dem b um eins nach oben korrigieren - bei 100 Einträgen nicht besonders angenehm.

      "platz" im sinne von platz beim schreiben des scriptes meinst du?
      vernachlässigbare größe, _speicherplatz_ im RAM während der ausführung wäre ein kritischeres kriterium.

      Mit "Platz" meinte ich den Platz in der Datei selber. Bei einem 100-Eintrage-Array mit nem kleinen Script drum herum ist der Speicherverbrauch im RAM denk ich mal nicht so hoch...kann mich aber irren.
      Egal - ich meinte den Platz in der Datei selber, damit es übersichtlich bleibt und nicht allzu "groß" wird.

      wie sieht's mit

      $dateien[0]="../inhalte/about.html";
      $dateien[]="../inhalte/bilder.html";
      $dateien[]="../inhalte/links.html";
      $dateien[]="../inhalte/main.php";
      $dateien[]="../inhalte/onoff.html";
      $dateien[]="../inhalte/wallpapermain.html";

      aus?

      Genau so etwas suchte ich! Danke! Ich wusste doch, dass es da irgendeine Kurzform für gibt! Hat das irgendwelche Nachteile? Schätze mal nicht, oder?

      Gruß

      Mastershrimp

  2. Moin!

    $dateien[$d++] klappt nur teilweise (die erste Datei wird irgendwie nicht beachtet),

    Für das, was Du willst gibt es ca. 3734534356 mögliche Schreibweisen.

    $d=(-1);
    $dateien[$d++]="../inhalte/about.html";
    $dateien[$d++]="../inhalte/bilder.html";
    ...

    sollte es tun...

    $dateien=array();
    $d=array_push($dateien, "../inhalte/about.html");
    $d=array_push($dateien, "../inhalte/bilder.html");
    ...

    auch. (Du musst Dir $d nicht zurücggeben lassen)

    ließe sich das irgendwie noch optimieren?

    Definiere "optimieren".

    Meinst Du

    • Ausführungsgeschwindigkeit
    • Speicherverbrauch
    • Lesbarkeit
    • [...]
        [senden]

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Nur ne kurze Antwort, weil das Wesentliche in der Antwort auf wahsagas posting steht.

      $d=(-1);
      $dateien[$d++]="../inhalte/about.html";
      $dateien[$d++]="../inhalte/bilder.html";
      ...

      sollte es tun...

      Bei mir ging das irgendwie nicht...Hatte ich genau so ausprobiert und der erste Eintrag des Arrays wurde übergangen.

      $dateien=array();
      $d=array_push($dateien, "../inhalte/about.html");
      $d=array_push($dateien, "../inhalte/bilder.html");
      ...

      auch. (Du musst Dir $d nicht zurücggeben lassen)

      Das ist zu lang ;)

      Definiere "optimieren".

      Meinst Du

      • Ausführungsgeschwindigkeit
      • Speicherverbrauch
      • Lesbarkeit
      • [...]
          [senden]

      Ok. Habe mich ungenau ausgedrückt. Ich meinte mit "optimieren", dass in der Datei selber weniger Code stehen soll - damits übersichtilicher wird. Ist ja schon ein Unterschied, ob man 100 Zeilen Code hat, oder 200 Zeilen...

      An die Ausführungsgeschwindigkeit eines 10KB-Scriptes habe ich gar nicht gedacht - ich denke das klappt schon irgendwie. Wird eh nur von ner handvoll User benutzt (ist eine Suchfunktion).

      Vielen Dank euch beiden!

      Gruß

      Mastershrimp

      1. Moin!

        $d=(-1);
        $dateien[$d++]="../inhalte/about.html";
        $dateien[$d++]="../inhalte/bilder.html";
        ...
        Bei mir ging das irgendwie nicht...Hatte ich genau so ausprobiert und der erste Eintrag des Arrays wurde übergangen.

        Mit einem "$dateien=array();"
        davor sollte es gehen...

        Ich meinte mit "optimieren", dass in der Datei selber weniger Code stehen soll

        Das ist grundfalsch.
        Manche schreiben Skripte und nutzen jede verdammte Möglichkeit irgendwas verkürzt zu schreiben und übersichtlicher wird es nicht, im Gegenteil.

        Zum Beispiel:

        Ich mag folgendes nicht:

        if ($yxz==100) echo "xyz ist Hundert";

        Grund: Ein if- Konstrukt hat eine "optische Erscheinungsweise":

        if ($yxz==100) {
           echo "xyz ist Hundert";
        }

        Hat zwar zwei Zeilen mehr, aber ich sehe sofort, was ich da gemacht habe und ich habe keinerlei Probleme, ein ";" zu vergessen, wenn ich das mal um einen weiteren Ausdruck verlängere. Das mag daher kommen, daß meine erste Programmiersprache ein frühes BASIC war, welches solche Abkürzungen wohl nicht kannte. (Wozu auch...) Genau genommen trauere ich noch dem guten alten "endif" nach, die {} habem in meinen Augen nichts verbessert.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
        1. Moin!

          Genau genommen trauere ich noch dem guten alten "endif" nach, die {} habem in meinen Augen nichts verbessert.

          Es gibt eine Alternative Notationsform in PHP, die genau das hat. Aber bitte benutze es nicht, ich finde nämlich, dass es grausam aussieht. Die geschweiften Klammern sind vollkommen in Ordnung.

          - Sven Rautenberg

          --
          Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!
          1. Moin!

            Die geschweiften Klammern sind vollkommen in Ordnung.

            Naja. Ich hab mich ja "gerade eben" an die Dinger gewöhnt. Da werd ich nicht gleich wieder wechseln, zumal sich diese Notation ja scheinbar als Standard quer durch viele gängigen Hochsprachen (C, CPP, Java, Perl, PHP... Nein, Python offenbar nicht ) zieht.

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix®

            --
            Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.