problem mit array

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

  • problem mit array

    hallo,
    ich habe ein problem mit einem array:

    $array_1 = array(1, 2, 4, 6, 8, 9, 12);
    $array_2 = array(1, 2, 5, 14, 8, 9,);
    $array_3 = array(3, 2, 5, 14, 12,);

    Nun möchte ich nun alle Elemente aus allen Arrays haben, allerdings sollen die doppelten gelöscht werden.

    Meine Idee war dann eigentlich:

    $array_neu = array_merge($array_1 , $array_2, $array_3);
    $array_neu = array_unique($array_neu);

    wenn ich das nun mit implode ausgebe ist auch alles richtig:
    echo implode ("-", $array_neu);

    ich brauche aber die zahlen nun für eine datenbank abfrage und wollte sie mit:

    for ($tt=0; $tt<count($array_neu); $tt++)
    {
    .
    echo $array_neu[$tt];
    .

    //db-abfrage

    }

    ausgeben. allerdings funktioniert es dann nicht mehr. er gibt mir nicht mehr alles zahlen aus sondern leerzeichen.

    gibt es eine lösung dafür? anscheinden kommen bei unique() leerzeichen mit in den array so dass es mit dem schleifen-auslesen nicht mehr klappt.

    wäre super wenn jemand eine lösung dafür wüsste.
    danke !!!
    Zuletzt geändert von cent; 24.05.2002, 22:34.

  • #2
    Dafür gibt es extra die Funktion array_intersect();
    $array_1 = array(1, 2, 4, 6, 8, 9, 12);
    $array_2 = array(1, 2, 5, 14, 8, 9,);
    $array_3 = array(3, 2, 5, 14, 12,);

    $array_neu = array_intersect($array_1,$array_2,$array_3);


    Dass dabei die Keys erhalten bleiben, ist ein Nebeneffekt und tritt auch mit der o.g. Methode auf.
    Dir bleibt nichts anderes übrig, als den Array mit foreach oder each durchzugehen oder jedem Item einem neuen Key zuzuordnen.


    while(list($key,$value)=each($array_neu))
    {
    echo "$key => $value<br>";
    }
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      leider hatte ich mich verschrieben. ich meinte eigentlich:


      Nun möchte ich nun alle Elemente aus allen Arrays haben, allerdings sollen die doppelten gelöscht werden.

      Kommentar


      • #4
        Ach so. Na dann kannst du array_merge() und array_unique() verwenden.

        Durchlaufen musst du den Array dann halt mit while oder each.
        Oder du weist dem Array komplett neue Keys zu.

        while(list($key,$value)=each($array_neu))
        {
        echo "$key => $value<br>";
        }

        einen kleinen Rechtschreibfehler korrigiert.
        Zuletzt geändert von Troublegum; 24.05.2002, 23:06.
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar


        • #5
          super. vielen vielen dank werd es mal ausprobieren.

          Kommentar

          Lädt...
          X