Array Differenz vergleichen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Array Differenz vergleichen

    Hallo, ich habe ein kleines Problem.

    Und zawar habe ich "Contentabschnitte", diese Zahl ist variabel. im folgedem Beispiels ist das die Variable "a". Ich ermittle also die aktuelle Contentabschnitte via sql query.

    Aktuelle Contentabschnitte sind derzeit 6 (1, 2, 3, 4, 5, 6).
    Dann habe ich ein Array was beinhaltet welche Contentabschnitte gesetzt sind. Das Array heißt im beispiel $_POST['b'].

    $_POST['b'] beinhaltet 2 werte (2 und 4). FAZIT: Contentabschnitt 2 und 4 sind gesettzt der rest nicht.

    soweit so gut.

    Nun möchte ich aber ermitteln welche Contentabschnitte NICHT gesetzt sind. Also habe ich folgende Schleife gebaut:

    Quellcode

    1. $z = "0";
    2. for ($i = 1; $i <= $a; $i++) {
    3. $z++;
    4. foreach ($_POST['b'] as $value) {
    5. if ($value == $i) {
    6. $z = "1";
    7. echo $z ."<br>";
    8. } else {
    9. $z = "0";
    10. echo $z ".<br>";
    11. }
    12. }
    13. }
    Alles anzeigen


    So habe ich mir das gedacht, das Problem ist eigentlich nur das ich eine Endlosschleife habe. Hat jemand eine Idee wo der Fehler leigen könnte, oder einen andere Lösungsweg?

    Danke für die Hilfe.

    So long

    FoX

    //EDIT
    ein fehler habe ich gefunden, es war eine Endlosschleife weil $i überschrieben wurde, $z wurde nun hinzugefürgt und das Problem behoben.

    Es existiert jedoch ein weiteres, $z wird bei jedem durchlauf 2x ausgegeben.
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • richtig, weil $i überschrieben wurde das Problem ist jedoch gelöst, habe wie gesagt nur noch das Porblem das ich pro durchlaug 2 Ausgaben bekomme :(.

    // EDIT: Ok das ich 2 Ausgaben bekomme ich kein fehler sinder logsich da $_POST['b'] 2 werte hat. Somit ist meine methode mehr oder weniger unbrauchbar. Hat wer eine andere idee, wie man das lösen kann?
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Wenn ich dein Problem richtig verstanden habe hast du zwei Mengen. Weil eines eine Teilmenge der anderen ist, suchst du die Differenz. PHP hat für Arrays ein paar Mengenoperationen bereitgestellt - die die du suchst heißt array_diff()
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • :shock: Da hätte ich auch selber drauf kommen können.

    Danke für die Hilfe nun klappt es.
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.