Anzeige

PHP einen String in Spalten und Zeilen zerlegen

PHP einen String in Spalten und Zeilen zerlegen | PSD-Tutorials.de

Erstellt von hey_jo, 07.07.2009.

  1. hey_jo

    hey_jo Noch nicht viel geschrieben

    Dabei seit:
    29.10.2006
    Beiträge:
    25
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    Moin, ich bekomme einen Soap-Call mit einer Top10-Liste in einem String. Die Verbindung steht. Der String wird als ein Datensatz ausgegeben. Die Spalten werden mit ";" und die Zeilen mit "|" getrennt. (Partner1;Müller;100|Partner2;Maier;200|). Diesen will ich erst in Spalten und dann in Zeilen zerlegen. Also Spalte Nummer: Partner1, Spalte Name: Müller, Spalte Punkte: 100 --> nächste Zeile.

    Bis jetzt konnte ich diesen jedoch nur nach Wörter trennen, mittels Schleife und dem Semikolon-Separator

    PHP-Code:
    <?php
    //Zeichenkette erstellen
    $text = $result[0]; //Result0, mein Soap-Call

    //Erstes Vorkommen des Simikolon ermitteln
    $i = strpos($text, ";");
    //solange ein Semikolon vorhanden ist
    while ($i) {
    //Das Wort am Anfang von Text ausgeben
    echo substr($text, 0, $i)."<br/><tr/>";
    //Text um das ausgegebene Wort kuerzen
    $text = substr($text, $i + 1);
    //neue Position fuer das Semikolon ermitteln
    $i = strpos($text, ";");
    }
    //Das letzte Wort hat keine Semikolon mehr, daher extra ausgeben.
    echo $text;

    ?>

    Wer kann mir weiterhelfen, bin für jede Hilfe dankbar.

    Viele Grüße

    hey_jo
     
    #1      
  2. Thyras

    Thyras Nicht mehr ganz neu hier

    Dabei seit:
    16.06.2009
    Beiträge:
    81
    Geschlecht:
    männlich
    Ort:
    Chemnitz
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Nicht so kompliziert machen! ;)

    Sofern ich dich richtig verstanden habe, wäre das ein möglicher Weg:

    PHP:
    1.  
    2. $string = "Partner1;Müller;100|Partner2;Maier;200|";
    3. $zeilen = explode("|", $string);
    4. $result = array();
    5.  
    6. foreach($zeilen as $i => $zeile) {
    7.     if(!empty($zeile)) {
    8.         $spalte = explode(";", $zeile);
    9.         $result[$i] = array('Nummer' => $spalte[0],
    10.                             'Name' => $spalte[1],
    11.                             'Punkte' => $spalte[2]);
    12.     }
    13. }
    14.  
    In $result stände danach:

    PHP:
    1.  
    2. (
    3.     [0] => Array
    4.         (
    5.             [Nummer] => Partner1
    6.             [Name] => Müller
    7.             [Punkte] => 100
    8.         )
    9.  
    10.     [1] => Array
    11.         (
    12.             [Nummer] => Partner2
    13.             [Name] => Maier
    14.             [Punkte] => 200
    15.         )
    16.  
    17. )
    18.  
     
    #2      
  3. hey_jo

    hey_jo Noch nicht viel geschrieben

    Dabei seit:
    29.10.2006
    Beiträge:
    25
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Super Thyras, danke - hat funktioniert. Über echo spalte 1, 2 oder 3 hole ich Nummer, Name und Punkte aus der letzen Zeile getrennt nach Spalten des Top10-Strings rein.

    Wie kann ich nun den 9, 8, 7 ,6 usw. Datensatz (Teilstring) darstellen??
     
    #3      
  4. Thyras

    Thyras Nicht mehr ganz neu hier

    Dabei seit:
    16.06.2009
    Beiträge:
    81
    Geschlecht:
    männlich
    Ort:
    Chemnitz
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Ich versteh' deine Frage nicht. :uhm:

    Du hast doch jetzt alles fein säuberlich zerlegt in Arrays verfügbar. Was willst du denn wie anzeigen bzw. welche Informationen fehlen?
     
    #4      
  5. hey_jo

    hey_jo Noch nicht viel geschrieben

    Dabei seit:
    29.10.2006
    Beiträge:
    25
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    // Gebe Top1

    echo "<tr bgcolor='#EDEDED'><td width='33%' align='left'>".$spalte[0]."</td>

    <td width='33%'>".$spalte[2]."</td>

    <td width='33%'>".$spalte[1]."</td></tr>";

    // Tabellenfuß

    echo "</table>";

    Damit wird dargestellt: Partner10;Mustermann;50
    Ich will jetzt in der nächsten Zeile auch Partner1 Müller und Partner2 Maier und die Anderen ausgeben.

    Die Top10 hole ich mit:

    // NUSoap wird benoetigt, um die Verbindung
    // herzustellen.
    require('nusoap.php');
    // SOAP-Call vorbereiten
    $s = new nusoapclient($server.'/bla/bla/Carer');
    // Liste der abzufragenden Felder setzen.
    $fields = array(1 => 'Top10_EP', // Top10 nach eigenen Provisionen
    2 => 'Pokal_EP'); // Pokalincentive nach Teamprov
    // Aufruf des Dienstes
    $result = $s->call('getCarer', $parameters);
    // Ergebnis auswerten
    if (! $err = $s->getError()) {
    }

    Wie kann ich nun die Spalten aus array 2,3, usw. ausgeben.

    Sorry, das ist mein erster PHP-Skript, deswegen soviel Unverständnis :)
     
    #5      
  6. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Also wenn Du nichts sortieren musst, bzw. die Reihenfolge unverändert bleibt und die Daten immer 3 Spalten beinhalten, langt auch folgendes:

    PHP:
    1.  
    2. <?php
    3. $string = 'Partner1;Müller;100|Partner2;Maier;200|';
    4. $string= preg_replace('/^(;|\|)|(;|\|)$/s', '', $string);
    5. $string= str_replace(';', '</td><td>', $string);
    6. $string= str_replace('|', '</td></tr><tr><td>', $string);
    7. echo '<table border="1">
    8.       <tr>
    9.       <td>';
    10. echo $string;
    11. echo '</td>
    12.      </tr>
    13.      </table>';
    14. ?>
    15.  
     
    #6      
  7. hey_jo

    hey_jo Noch nicht viel geschrieben

    Dabei seit:
    29.10.2006
    Beiträge:
    25
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Perfekt, alle Daten werden nun absteigend nach Punkten sortiert angezeigt :), sogar die vierte Spalte, Vorname, die ich vergaß zu erwähnen, wird angezeigt.

    Meine Tabelle sieht nun so aus:
    ID Punkte Name Vorname
    1 100 Müller Max

    Der Fall wäre für mich erledigt, wenn das Ergebnis so aussehen würde:

    ID Name Vorname Punkte
    1 Müller Max 100

    Trotzdem, vielen, vielen Dank!!!!
     
    #7      
  8. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Also hast Du nun 3 oder 4 Werte pro Zeile?
     
    #8      
  9. hey_jo

    hey_jo Noch nicht viel geschrieben

    Dabei seit:
    29.10.2006
    Beiträge:
    25
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Definitiv 4 Werte pro Zeile. Mit deinem Code werden auch alle 4 Werte ausgegeben, nur das ich die Spalte 2 (Punkte) unbedingt ganz am Ende rechts brauche. Also als letzte Spalte
     
    #9      
  10. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Nee, dann mach das doch lieber über Arrays, dann kannst Du die Daten rumschieben wie Du es brauchst:

    PHP:
    1.  
    2. <?php
    3. $string = '|Partner1;hans;Müller;100|Partner2;peter;Maier;200;';
    4. $string= preg_replace('/^(;|\|)|(;|\|)$/s', '', $string);
    5. $string=explode('|', $string);
    6. if(count($string)>=1){
    7.    echo '<table border="1">';
    8.    foreach($string as $zeile){
    9.            $spalte=explode(';', $zeile);
    10.            // spalte[0];spalte[1];spalte[2];spalte[3]
    11.            if(count($spalte)==4){
    12.               echo '<tr>';
    13.               echo '<td>' . $spalte[0] . '</td>';
    14.               echo '<td>' . $spalte[1] . '</td>';
    15.               echo '<td>' . $spalte[2] . '</td>';
    16.               echo '<td>' . $spalte[3] . '</td>';
    17.               echo '</tr>';
    18.            }
    19.    }
    20.    echo '</table>';
    21. }
    22. ?>
    23.  
     
    #10      
  11. hey_jo

    hey_jo Noch nicht viel geschrieben

    Dabei seit:
    29.10.2006
    Beiträge:
    25
    Geschlecht:
    männlich
    PHP einen String in Spalten und Zeilen zerlegen
    AW: PHP einen String in Spalten und Zeilen zerlegen

    Vielen Dank an alle und ganz besonders netbandit für die schnelle Hilfe. Das Ergebnis ist einwandfrei!!!

    Der Fall ist erledigt.

    Viele Grüße hey_jo
     
    #11      
x
×
×