Eric Teubert: Effektivität

Hallo zusammen,

und zwar geht es mir um die Erstellung eines recht großen Arrays ... zuerst habe ich es folgndermaßen im Script aufgeschrieben:

$array=array(
array("name"=>"test","typ"=>3,"typ2"=>1,"kg"=>0.5,"dum"=>25,"bla"=>48,"blub"=>4),
array("name"=>"nochntest","typ"=>3,"typ2"=>2,"kg"=>1,"dum"=>45,"bla"=>63,"blub"=>9),
.
.
.
// weiter 100 Elemente folgen ...
);

Um den Code kürzer zu machen, könnte man ja nun eine Funktion, z.B. gen_array schreiben, in der man nur die entsprechenden Parameter eintragen muss, also z.B.

$array=array(
gen_array("test",3,1,0.5,25,48,4),
gen_array("nochntest",3,2,1,45,63,9),
.
.
.
);

Jetzt wäre es allerdings interessant, inwiefern es die Durchführung des Scripts verlangsamt, ob merklich oder ... ob die ganze Überlegung vielleicht zweckfremd ist :)

MfG

Eric

  1. Huhu Eric

    Merkliche Zeitunterschiede wirst Du auch mit Einführung einer weiteren Funktion nicht erhalten.

    Um den Code kürzer zu machen,

    Mach ihn lieber übersichtlicher, und zwar für Dich.

    $array=array(
    array("name"=>"test","typ"=>3,"typ2"=>1,"kg"=>0.5,"dum"=>25,"bla"=>48,"blub"=>4),
    array("name"=>"nochntest","typ"=>3,"typ2"=>2,"kg"=>1,"dum"=>45,"bla"=>63,"blub"=>9),

    1. $array ist ein sehr ungünstiger Name für ein Array. Generell sollte man Schlüsselworte als Bezeichner vermeiden, auch wenn es in PHP erlaubt ist macht es den Code schwer lesbar und in vielen anderen Sprachen ist es verboten.

    2. Schreibe komplexe Strukturen immer mit vertikaler Orientierung.
    Z.B. so:

    $arr = array(
                    array(
                            "name" => "test",
                            "typ"  => 3,
                            "typ2" => 1,
                            "kg"   => 0.5,
                            "dum"  => 25,
                            "bla"  => 48,
                            "blub" =>4
                            ),
                    array(
                            "name" => "nochntest",
                            "typ"  => 3,
                            "typ2" => 2,
                            "kg"   => 1,
                            "dum"  => 45,
                            "bla"  => 63,
                            "blub" => 9
                            ),
            );

    Evtl. kannst Du hier auch parse_ini_file benutzen. http://de3.php.net/manual/en/function.parse-ini-file.php

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Mach ihn lieber übersichtlicher, und zwar für Dich.

      Na gut, hat auch Vorteile :)

      1. $array ist ein sehr ungünstiger Name für ein Array.

      Im Script heißt es auch anders, auch die Schlüssel blum, bla und blub existieren nicht aber trotzdem danke für den Hinweis.

      1. Schreibe komplexe Strukturen immer mit vertikaler Orientierung.

      Hm, da würde das Script riesig werden, ich habe mir das wie eine Tabelle angeordnet, so sehe sich ganz gut durch - und ich denk mal, das reicht :)
      Klar, das Array ist nur 2Dimensional, bei noch mehr Dimension kann dein Vorschlag natürlich sinnvoller sein, bzw ist er es :)

      Evtl. kannst Du hier auch parse_ini_file benutzen. http://de3.php.net/manual/en/function.parse-ini-file.php

      Werd ich mir auf jeden Fall mal anschaun!

      Vielen Dank

      MfG

      Eric

      1. Hallo Eric,

        Evtl. kannst Du hier auch parse_ini_file benutzen. http://de3.php.net/manual/en/function.parse-ini-file.php

        Werd ich mir auf jeden Fall mal anschaun!

        Du solltest dabei allerdings beachten, dass diese Funktion erst seit Version 4.3.11 bzw. 5.0.4, die beide gerade mal zehn Tage alt sind, uneingeschränkt einsetzbar sind. Vorher konnte sie nicht mit Werten, die eine rechteckige Klammer enthalten, umgehen: Bug #28804.

        Schöne Grüße,

        Johannes

        --
        ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)
  2. und zwar geht es mir um die Erstellung eines recht großen Arrays ... zuerst habe ich es folgndermaßen im Script aufgeschrieben:

    $array=array(
    array("name"=>"test","typ"=>3,"typ2"=>1,"kg"=>0.5,"dum"=>25,"bla"=>48,"blub"=>4),
    array("name"=>"nochntest","typ"=>3,"typ2"=>2,"kg"=>1,"dum"=>45,"bla"=>63,"blub"=>9),

    Ich hab keine Ahnung von PHP, weiß aber das es geht. Das ganze schreit förmlich nach einer Objekt Orientierten Lösung.

    Jetzt wäre es allerdings interessant, inwiefern es die Durchführung des Scripts verlangsamt, ob merklich oder ... ob die ganze Überlegung vielleicht zweckfremd ist :)

    Du redest über zehntelsekunden oder weniger, solange du nicht Programme (z.b. in Assembler) die zeitkritisch sind schreibst, brauchst du dir über sowas keine Gedanken zu machen. Relevanter für die Geschwindigkeit von (CGI-)Skripte sind, z.b. Datei- und DB zugriffe.

    Struppi.

  3. Hi,

    Jetzt wäre es allerdings interessant, inwiefern es die Durchführung des Scripts verlangsamt,

    Hm. Im Titel schriebst Du Effektivität.
    Hier redest Du von Verlangsamung - die hat aber nichts mit Effektivität (der Algorithmus tut, was von ihm erwartet wird), sondern mit der Effizienz (wie ist das Zeitverhalten des Algorithmus).

    ob merklich oder ... ob die ganze Überlegung vielleicht zweckfremd ist :)

    Probier's aus.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.