Daniel82: array-ausgabe

Hallo,

$arr = array($a,$b,$c,$d,$e);

echo $arr;

Die Variablen werden über ein Formular gesetzt. Wenn eine Variable in der Länge 0 ist, soll diese gar nicht erst ausgegeben werden, denn alle sollen durch ein Komma getrennt angezeigt werden.

Wie mache ich das?

  1. Hallo,

    Unelegant aber funktioniert:

    <?php  
    $arr = array($a,$b,$c,$d,$e);  
    if($a != '') $ausgabe .= $a . ', ';  
    if($b != '') $ausgabe .= $b . ', ';  
    if($c != '') $ausgabe .= $c . ', ';  
    if($d != '') $ausgabe .= $d . ', ';  
    if($e != '') $ausgabe .= $e;  
    echo $ausgabe;  
    ?>
    

    Gibt aber bestimmt bessere Lösungsansätze...
    Grüße,
    Willi

    1. Hallo,

      Unelegant aber funktioniert:

      <?php

      $arr = array($a,$b,$c,$d,$e);
      if($a != '') $ausgabe .= $a . ', ';
      if($b != '') $ausgabe .= $b . ', ';
      if($c != '') $ausgabe .= $c . ', ';
      if($d != '') $ausgabe .= $d . ', ';
      if($e != '') $ausgabe .= $e;
      echo $ausgabe;
      ?>

      
      > Gibt aber bestimmt bessere Lösungsansätze...  
      > Grüße,  
      > Willi  
        
      Was ist, wenn c,d und e nicht bestückt ist? Dann ist ein Komma zu viel!
      
      1. Hoi!

        Wie wärs mit ner Zählschleife?
        for($i=1;$i<6;$i++)
        {
          if (!(array[$i] == ''))
            {
              echo array[$i].", ";
            }
        }

        jetzt könnte man noch bei else den Inhalt entfernen, wenn das Array da leer ist, aber ansonsten gibt das jetzt nur die sachen aus, die da sind mit komma getrennt -.-
        Verbesserung wär noch ne weitere If abfrage, ob $i==5 damit beim letzten dann kein Komma kommt ^^

        mfg

        Yinan

        1. Hoi!

          Wie wärs mit ner Zählschleife?
          for($i=1;$i<6;$i++)
          {
            if (!(array[$i] == ''))
              {
                echo array[$i].", ";
              }
          }

          jetzt könnte man noch bei else den Inhalt entfernen, wenn das Array da leer ist, aber ansonsten gibt das jetzt nur die sachen aus, die da sind mit komma getrennt -.-
          Verbesserung wär noch ne weitere If abfrage, ob $i==5 damit beim letzten dann kein Komma kommt ^^

          mfg

          Yinan

          Ja, auch bei deinem Beispiel kommt das Komma! :(

          1. Moin

            Überprüfe zuerst die Post-Daten auf Inhalt und setze diese erst dann ins array. Damit umgehst du dein Problem.

            Gruß Bobby

            --
            -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
            -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
            ie:{ br:> fl:{ va:{ ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
          2. Hoi!

            Sind die Variablen denn Zahlen? Also sind da Zahlen drin? Wenn ja, musst du die Abfrage natürlich umändern:

            if(!(array[$i] == 0))

            oder du denkst einfach an mehrere Sachen:

            if(!((array[$i] == 0) OR (array[$i] == '') OR (array[$i] == '0')))

            wenn das array dann leer ist oder den Zahlenwert 0 hat oder einen String mit den inhalt 0 hat, dann wird es nicht ausgegeben, ansonsten schon...

            mfg

            Yinan

      2. Hallo,

        Hallo,

        Unelegant aber funktioniert:

        <?php

        $arr = array($a,$b,$c,$d,$e);
        if($a != '') $ausgabe .= $a . ', ';
        if($b != '') $ausgabe .= $b . ', ';
        if($c != '') $ausgabe .= $c . ', ';
        if($d != '') $ausgabe .= $d . ', ';
        if($e != '') $ausgabe .= $e;
        echo $ausgabe;
        ?>

        
        > > Gibt aber bestimmt bessere Lösungsansätze...  
        > > Grüße,  
        > > Willi  
        >   
        > Was ist, wenn c,d und e nicht bestückt ist? Dann ist ein Komma zu viel!  
        
        Dann halt folgendes:  
        ~~~php
        <?php  
        $arr = array($a,$b,$c,$d,$e);  
        if($a != '') $ausgabe .= $a;  
        if($b != '') $ausgabe .= ', ' . $b;  
        if($c != '') $ausgabe .= ', ' . $c;  
        if($d != '') $ausgabe .= ', ' . $d;  
        if($e != '') $ausgabe .= ', ' . $e;  
        echo $ausgabe;
        

        Geht auch bei dem Post unter mir
        ?>
        Grüße,
        Willi

  2. echo $begrüßung;

    $arr = array($a,$b,$c,$d,$e);
    echo $arr;

    So bekommst du den Array-Inhalt aber nicht ausgegeben.

    Die Variablen werden über ein Formular gesetzt. Wenn eine Variable in der Länge 0 ist, soll diese gar nicht erst ausgegeben werden, denn alle sollen durch ein Komma getrennt angezeigt werden.

    Du müsstest zuerst das Array durchlaufen und die 0-Werte entfernen. Dafür eignet sich array_filter(). Danach kannst es du mit implode() verkommaen lassen.

    echo "$verabschiedung $name";

  3. Hallo Daniel,

    Die Variablen werden über ein Formular gesetzt. Wenn eine Variable in der Länge 0 ist, soll diese gar nicht erst ausgegeben werden, denn alle sollen durch ein Komma getrennt angezeigt werden.

    In dem Du die Funktion empty() einbaust.

    Viele Grüße,

    Stefan

  4. Hallo Daniel,

    $arr = array($a,$b,$c,$d,$e);

    echo $arr;

    Die Variablen werden über ein Formular gesetzt. Wenn eine Variable in der Länge 0 ist, soll diese gar nicht erst ausgegeben werden, denn alle sollen durch ein Komma getrennt angezeigt werden.

    Ein Ansatz:

    <?php  
    $arr_names = array('a', 'b', 'c', 'd', 'e');  
    $arr = array();  
      
    foreach ($_GET as $field => $value) {  
        if (in_array($field, $arr_names) && strlen($value) > 0) {  
            $arr[] = $value;  
        }  
    }  
      
    echo implode(',', $arr);  
    ?>
    

    Schöne Grüße,

    Johannes