List :-(

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • List :-(

    Hallo,

    ich habe da mal ein ganz banale Frage.

    Warum funktioniert das...
    PHP Code:
    $info = array('Kaffee''braun''Koffein');

    // Auflisten aller Variablen
    list($drink$color$power) = $info;
    echo 
    "$drink ist $color und $power macht es zu etwas besonderem.\n"
    Aber nicht das...
    PHP Code:
    $info = array('Kaffee''braun''Koffein');
    $variblen "$drink$color$power";
    // Auflisten aller Variablen
    list($variablen) = $info;
    echo 
    "$drink ist $color und $power macht es zu etwas besonderem.\n"
    Vielen Dank an den, der mir schreibt, wie es mit dem 2. Beispiel funktionieren kann.

    Frohe Ostern!

    Gruß, Tiese

  • #2
    Beim ersten schreibst du 3 Variablen, beim zweiten nur 1 Variable, die ein String enthält.

    var_dump($variablen);

    Comment


    • #3
      Wow, vielen Dank für die super schnelle Antwort!

      Nur leider löst das mein Problem nicht :-(

      Ich habe folgenden String vorliegen...
      PHP Code:
      $variblen "$drink$color$power"
      Da dieser sich aber auch ändern kann (Länge und Benennung), möchte ich nicht ständig das...
      PHP Code:
      list($drink$color$power) = $info
      ändern müssen.

      Kann man es irgendwie anstellen, dass der String automatisch in List eingebunden wird?

      Vielen lieben Dank für Eure Hilfe.

      Gruß, Tiese

      Comment


      • #4
        PHP Code:
        $info = array('drink' => 'Kaffee''color' => 'braun''power' => 'Koffein');
        extract($info);
        echo 
        "$drink ist $color und $power macht es zu etwas besonderem.\n"
        Ich würde an deiner Stelle lieber direkt mit dem Array arbeiten. Es macht fast nie einen Sinn alle Werte aus einem Array in eigene Variablen zu stopfen.

        PHP Code:
        $info = array('drink' => 'Kaffee''color' => 'braun''power' => 'Koffein');
        echo 
        $info['drink'] . " ist " $info['color'] . " und " $info['power'] . " macht es zu etwas besonderem.\n"
        PHP Code:
        $info = array('drink' => 'Kaffee''color' => 'braun''power' => 'Koffein');
        printf("%s ist %s und %s macht es zu etwas besonderem.\n"$info['drink'], $info['color'], $info['power']); 
        PHP Code:
        $info = array('Kaffee''braun''Koffein');
        vprintf("%s ist %s und %s macht es zu etwas besonderem.\n"$info); 
        Last edited by h3ll; 10-04-2009, 10:53.

        Comment


        • #5
          Original geschrieben von Tiese
          Ich habe folgenden String vorliegen...
          PHP Code:
          $variblen "$drink$color$power"
          Da dieser sich aber auch ändern kann (Länge und Benennung), möchte ich nicht ständig das...
          PHP Code:
          list($drink$color$power) = $info
          ändern müssen.
          Ich verstehe deine Vorgehensweise (und damit dein Problem) nicht: Wieso fügst du erst drei Variablen (in einem String) zusammen, um sie anschließend wieder exakt in der gleichen Form daraus extrahieren zu wollen?

          Kann man es irgendwie anstellen, dass der String automatisch in List eingebunden wird?
          Du hast anscheinend eine etwas verworrende Vorstellung, was list() macht, was ein Array und was ein String ist.

          Auch kann explode() dir möglicherweise weiterhelfen.
          Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

          Comment


          • #6
            Danke für Eure Hilfe!

            Mein eigentliches Problem ist, dass ich folgendes von einem anderen Server bekomme...
            Code:
            <id>1</id><kunden_id>12345</kunden_id><brief_des></brief_des>
            <rate_id>2</rate_id><account>5</account><c>0</c><nd>04</nd>
            <sn>493</sn><dd></dd><nation>0</nation><pre>1</pre>
            <ratemodel_name>Test</ratemodel_name><feature_group_id>62</feature_group_id>
            <rate_announcement>1</rate_announcement><e_announcement>2</e_announcement>
            <e_tree>listing</e_tree><fall>0</fall><level>0</level><error>0</error>
            <cli>0</cli><timeout>100</timeout><active>1</active><parallel>1</parallel>
            <ip_filter></ip_filter><busy>0</busy><quality></quality>
            Jetzt möchte ich eigentlich nur, dass ich mit $id den Wert 1 erhalte, mit $kunden_id den Wert 12345 erhalte, usw.

            Ist das irgendwie möglich?

            Hier mein Ansatz...
            PHP Code:
            preg_match_all("|<[^>]+>(.*)</[^>]+>|U",$daten_vom_Server$inhaltPREG_PATTERN_ORDER);
            preg_match_all("|<([^>]+)>.*</[^>]+>|U",$daten_vom_Server$benennungPREG_PATTERN_ORDER); 
            Nun wollte ich eigentlich nur den $inhalt mit der entsprechenden $benennung mit list(); kombinieren.
            So kann ich mit den Variablen mit $benennung arbeiten.

            Danke für Eure Hilfe.

            Gruß, Tiese

            Comment


            • #7
              Vermutlich soll das ein Template Engine o.ä. werden....

              Edit:
              Ne, doch nicht.
              Also ein xml Parser.....

              Dann verwende doch auch einen...
              http://de.php.net/manual/de/refs.xml.php
              Last edited by combie; 10-04-2009, 11:49.
              Wir werden alle sterben

              Comment

              Working...
              X