MoD: array_diff() ?

Hallo SELFHTML-Forum,

ich habe zwei Arrays

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 5
)
Array
(
    [0] => 1
    [1] => 5
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 6
)

Ich möchte die Werte zurückbekommen, die in beiden Arrays nicht vorkommen. Das wäre also

Array
(
    [0]=>0
    [1]=>3
    [2]=>4
)

Da wäre ja eigentlich array_diff gut, aber der liefert mir nur:

Array
(
    [0] => 0
)

Weiß jemand wo das Problem liegt

  1. Hallo,

    Ich möchte die Werte zurückbekommen, die in beiden Arrays nicht vorkommen.

    Und wie soll das funktionieren? Es gibt unendlich viele Wert die in beiden Arrays nicht vorkommen ...

    Das wäre also

    Array
    (
        [0]=>0
        [1]=>3
        [2]=>4
    )

    3 und 4 kommt im zweiten Array vor - vielleicht beschreibst du erstmal was genau du eigentlich willst.

    Weiß jemand wo das Problem liegt

    Ja, du hast die Beschreibung der Funktion nicht richtig gelesen: array_diff() gibt alle die Elemente zurück die im ersten Parameter enthalten sind aber in keinem der weiteren.

    Gruß,
    Tobias

    1. Hallo,

      Ich möchte die Werte zurückbekommen, die in beiden Arrays nicht vorkommen.

      Und wie soll das funktionieren? Es gibt unendlich viele Wert die in beiden Arrays nicht vorkommen ...

      Das wäre also

      Array
      (
          [0]=>0
          [1]=>3
          [2]=>4
      )

      3 und 4 kommt im zweiten Array vor - vielleicht beschreibst du erstmal was genau du eigentlich willst.

      Weiß jemand wo das Problem liegt

      Ja, du hast die Beschreibung der Funktion nicht richtig gelesen: array_diff() gibt alle die Elemente zurück die im ersten Parameter enthalten sind aber in keinem der weiteren.

      Gruß,
      Tobias

      Danke! Das war es ich habe bei den Arrays und schon funkt's.

      1. Hello,

        Danke! Das war es ich habe bei den Arrays und schon funkt's.

        ?

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
  2. Hello,

    ich habe zwei Arrays

    Array
    (
        [0] => 0
        [1] => 1
        [2] => 2
        [3] => 5
    )
    Array
    (
        [0] => 1
        [1] => 5
        [2] => 2
        [3] => 3
        [4] => 4
        [5] => 6
    )

    Ich möchte die Werte zurückbekommen, die in beiden Arrays nicht vorkommen. Das wäre also

    Array
    (
        [0]=>0
        [1]=>3
        [2]=>4
    )

    Da wäre ja eigentlich array_diff gut, aber der liefert mir nur:

    Array
    (
        [0] => 0
    )

    Das ist auch vollkommen so beabsichtigit von der Funktion. Lies Dir bitte die Beschreibung genau durch: http://www.php.net/manual/en/function.array-diff.php

    Wenn Du die Reihenfolge der Arrays vertauschst, dann bekommst Du ein anderes Ergebnis.

    Und wenn Du die beiden Ergebnisse dann addierst, dann bekommst Du das, was Du ahben willst.

    $_dein_ergebnis = array_diff($_a, $_b) + array_diff($_b, $_a);

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      ich habe zwei Arrays

      Array
      (
          [0] => 0
          [1] => 1
          [2] => 2
          [3] => 5
      )
      Array
      (
          [0] => 1
          [1] => 5
          [2] => 2
          [3] => 3
          [4] => 4
          [5] => 6
      )

      Ich möchte die Werte zurückbekommen, die in beiden Arrays nicht vorkommen. Das wäre also

      Array
      (
          [0]=>0
          [1]=>3
          [2]=>4
      )

      Da wäre ja eigentlich array_diff gut, aber der liefert mir nur:

      Array
      (
          [0] => 0
      )

      Das ist auch vollkommen so beabsichtigit von der Funktion. Lies Dir bitte die Beschreibung genau durch: http://www.php.net/manual/en/function.array-diff.php

      Wenn Du die Reihenfolge der Arrays vertauschst, dann bekommst Du ein anderes Ergebnis.

      Und wenn Du die beiden Ergebnisse dann addierst, dann bekommst Du das, was Du ahben willst.

      ##      $_dein_ergebnis = array_diff($_a, $_b) + array_diff($_b, $_a);

      Hier musst Du dann auch noch mergen...
      Bei der reinen Addition kann es konflikte mit den Keys geben.

      $_dein_ergebnis = array_merge(array_diff($_a, $_b) + array_diff($_b, $_a));

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
  3. Hallo SELFHTML-Forum,

    ich habe zwei Arrays

    Array
    (
        [0] => 0
        [1] => 1
        [2] => 2
        [3] => 5
    )
    Array
    (
        [0] => 1
        [1] => 5
        [2] => 2
        [3] => 3
        [4] => 4
        [5] => 6
    )

    Ich möchte die Werte zurückbekommen, die in beiden Arrays nicht vorkommen. Das wäre also

    Array
    (
        [0]=>0
        [1]=>3
        [2]=>4
    )

    Also in beiden Array kommt nicht vor:

    7, 8, 9, 10, ...

    Sorry - CNR