kostenloser Webspace werbefrei: lima-city


Alle variablen holen und false variablen ausschließen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    Hallo,

    Ich habe viele Variablen und möchte nun prüfen, ob diese True sind und die false variablen ausschließen. Damit ich nicht 16^16 = 1,84467441 × 1019 IF Anweisungen Tippen muss, möchte ich also nur die false ausschließen und dementsprechend einen String generieren... Wie macht man das?

    Z.B: Kann Variable1 und 7 True sein, die anderen sollen dann ausgeschlossen werden.. Oder
    Variable 13 und 4 sind True.. Etc..
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. wenn das variablen mit eigenem namen sind, hätte ich folgende (umständliche) Lösung für dich:



    try
    {
    if(var1*var2*var3*var4)
    {
    //mach was, wenn ein false bei ist
    
    
    } catch (NullPointerException e_np) {
      //das hier ist völlig normal, dass er hier rein geht...
    hier können wir den nächsten block prüfen als try catch
    }



    bei 20 vars mag es noch gehen, bei mehr wirds tricky...

    einfacher ist es als array

    foreach ($array_x as $entry)
    {
    if($entry)
    {
    //hier variable killen, den rest packst du shcon zusammen zu scripten
    }
    
    }



    bei der anzahl variablen denk ich mal sollte das array als ausgangsbasis dienen... ansonsten mal umdenken... oder einen webserver suchen, auf dem eval() zugelassen ist. but -> eval is evil!
  4. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    sebulon schrieb:
    wenn das variablen mit eigenem namen sind, hätte ich folgende (umständliche) Lösung für dich:

    bei 20 vars mag es noch gehen, bei mehr wirds tricky...

    einfacher ist es als array

    foreach ($array_x as $entry)
    {
    if($entry)
    {
    //hier variable killen, den rest packst du shcon zusammen zu scripten
    }
    
    }



    bei der anzahl variablen denk ich mal sollte das array als ausgangsbasis dienen... ansonsten mal umdenken... oder einen webserver suchen, auf dem eval() zugelassen ist. but -> eval is evil!


    Erklär mir das mal genauer bitte, ich hab's nicht verstanden..

    Ich hab beispielsweise meine Variablen:
    $id				= false;
    $nachname		= false;
    $vorname		= false;
    $strasse		= false;
    $hausnummer		= false;
    $postleitzahl	= false;
    $ort			= false;
    $strasse		= false;
    $hausnummer		= false;
    $mobiltelefon	= false;
    $faxno			= false;
    $festnetz		= false;
    $mail			= false;
    $geburtstag		= false;
    $datum			= false;
    $hash			= false;


    Die muss ich jetzt in ein array legen?

    $array_x = array(Meine Variablen)


    Und dann durchlaufen lassen?

    foreach ($array_x as $entry)
    {
    if($entry)
    {
    echo "Der String mit den varbiablen'.$entry //???
    }
    }


    Der String soll ja jeh nach Variable angepasst werden...
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    kill-a-teddy schrieb:
    Der String soll ja jeh nach Variable angepasst werden...
    Verstehe ich dich falsch, oder willst du sowas bauen:
    $string = '';
    if($id)
    	$string .= "Id: $wert1\n";
    if($nachname)
    	$string .= "Nachname: $wert2\n";
    …
    echo(nl2br(trim($string)));
  6. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    hackyourlife schrieb:
    Verstehe ich dich falsch, oder willst du sowas bauen:
    $string = '';
    if($id)
    	$string .= "Id: $wert1\n";
    if($nachname)
    	$string .= "Nachname: $wert2\n";
    …
    echo(nl2br(trim($string)));


    Jein.. Ich hab inzwischen ein bisschen was umgeschrieben... Zu jeder Variable, die True ist, wird individuell ein Text erstellt... Jetzt muss ich nur noch schauen, dass ich den in ein array bekomme :o

    Ich würd's dir gern zeigen, allerdings sind das sehr sehr viele Code Zeilen ^^ -> Interesse?

    Beitrag zuletzt geändert: 7.11.2012 16:46:40 von kill-a-teddy
  7. g****e

    Du kannst die Texte in einem assoziativem Array aufbewahren:
    $texte = array();
    $texte[ 'id' ] = "hallo duda";
    $texte[ 'name' ] = "Dein Name ist aber toll!";
    
    foreach ( $texte as $k => $v ) {
      try {
        if ( $$k )
          $string .= $v;
        }
        catch( $e ) {
          // do nothing
        }
    }

    Damit nutzt du die PHP Fähigkeit der Variabeln Variablennamen. $$k würde im ersten durchlauf hier $id entsprechen, so kann man auch darauf zugreifen, wenn du magst. Ist nicht die schönste Idee, aber für das schöne ist Hackyourlife da, ich bin fürs unkonventionelle da^^

    Liebe Grüße
  8. Autor dieses Themas

    kill-a-teddy

    Kostenloser Webspace von kill-a-teddy

    kill-a-teddy hat kostenlosen Webspace.

    ggamee schrieb:
    Damit nutzt du die PHP Fähigkeit der Variabeln Variablennamen. $$k würde im ersten durchlauf hier $id entsprechen, so kann man auch darauf zugreifen, wenn du magst. Ist nicht die schönste Idee, aber für das schöne ist Hackyourlife da, ich bin fürs unkonventionelle da^^

    Liebe Grüße


    Okay, das scheint eine geeignete Lösung zu sein.. Allerdings hab ich grad Probleme damit das letzte Zeichen des Strings zu löschen...

    $arriba = array($new_array[$x]);
    	$wrr = implode($arriba);
    	$substr=substr($wrr,0,strlen($wrr)-1);
    	echo $substr;


    Der löscht alle Kommas, sollte aber nur das letzte löschen :/ :( Was da los?

    //Offenbar löscht er immer das, was im Array drin ist?

    Beitrag zuletzt geändert: 7.11.2012 18:56:52 von kill-a-teddy
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!