explode - dynamisch

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • explode - dynamisch

    hallo,
    jemand dabei an diesem schönen tag?

    folgender code liest begriffe aus dem db-feld 'key_words'.

    beispiel:
    1. feld: test1,test2,test3
    2. feld: test4,test5,test1,test2,test7,test3
    3. feld: test6,test2,test4,
    PHP-Code:
    $alle = array();
    $res mysql_query("SELECT key_words FROM ph_photos");
           while (
    $wert mysql_fetch_row($res))
           {
            list(
    $part[1],$part[2],$part[3],$part[4],$part[5],$part[6]) = explode(',',$wert[0]);

                   for (
    $i=1$i 6$i++)
                   {
                   if (!
    in_array($part[$i],$alle) AND !empty($part[$i])) { array_push($alle,$part[$i]); }
                   }
            }
    sort($alle); 
    das array '$alle' enhält wie gewünscht: 'test1,test2,test3,test4,test5,test6,test7',
    und zwar jeden eintrag nur einmal (rohstoff für ein dropdownmenu).

    leider klappt das nur mit 6 begriffen pro db-feld.
    das ganze sollte auch funktionieren mit einer nicht definierten anzahl von begriffen je db-feld.
    in feld1 stehen zb. 2 begriffe, in feld2 9 begiffe etc.

    man könnte zwar noch mehr '$part[$i]' reinschreiben und die abbruchbedingung in der for-schleife ('6') einfach auf einen relativ hohen wert setzen, aber das müsste doch auch eleganter gehen?

    wie könnte man das angehen?

  • #2
    PHP-Code:
    $part=explode(',',$wert[0]);
    foreach (
    $part as $key => $value)
     if (!
    in_array($value,$alle) AND !empty($value))
        
    array_push($alle,$value); 
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      @ mrhappiness,

      vielen dank! klappt wunderbar!

      grus, wolfgang

      Kommentar

      Lädt...
      X