kostenloser Webspace werbefrei: lima-city


Werte 2er Arrays auf Redundanz überprüfen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    m****r

    Hallo,

    ich möchte mit

    if(array_keys($_POST["X"]) !== array_keys(array_unique($_POST["X"])) and array_keys($_POST["Y"]) !== array_keys(array_unique($_POST["Y"]))) {
        $Error .= "Es befinden sich Spielerfiguren auf dem gleichen Feld!|";
      }


    überprüfen, ob sich Spielerfiguren auf dem gleichen Feld befinden. Leider funktioniert das so nicht in allen Fällen. Z.B: Bei folgendem:

    Spieler 1: 2,0
    Spieler 2: 0,1
    Spieler 3: 1,0
    Spieler 4: 5,0
    Spieler 5: 2,4

    Da in jeder Spalte (X und Y) je ein Wert doppelt vorkommt treffen beide Bedingungen zu und er meint, dass sie auf einem gleichen Feld sind, was aber nicht stimmt. Ich könnte das ganze auch mit einer For Schleife durchgehen und jeden Wert einzeln vergleichen, aber ich versuche irgendwie CPU Zeit zu sparen ... Habt ihr da eine gute Idee?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Selbst wenn du keine for-Schleife benutzt, eine andere Funktion wird, wenn sie das so erledigt, selbst wohl auch eine verwenden.
    Sowieso finde ich es einen komischen Gedankengang, die Sache so zu kösen, wie du es möchtest.
    Denn $_POST ist ein Array. Du überprüfst,w enn ich das richtig verstehe einen einzelnen Postwert und da Frage ich mich doch, wie du es geschafft hast einen Array über POST zu verschicken.

    Es wäre also dringend notwendig zu erfahren, wie du die Figurenpositionen speicherst. Ich seh da nämlich nicht durch.

    Beitrag zuletzt geändert: 1.5.2010 16:04:26 von reimann
  4. Autor dieses Themas

    m****r

    reimann schrieb:
    Selbst wenn du keine for-Schleife benutzt, eine andere Funktion wird, wenn sie das so erledigt, selbst wohl auch eine verwenden.
    Sowieso finde ich es einen komischen Gedankengang, die Sache so zu kösen, wie du es möchtest.
    Denn $_POST ist ein Array. Du überprüfst,w enn ich das richtig verstehe einen einzelnen Postwert und da Frage ich mich doch, wie du es geschafft hast einen Array über POST zu verschicken.

    Es wäre also dringend notwendig zu erfahren, wie du die Figurenpositionen speicherst. Ich seh da nämlich nicht durch.


    Die Positionen werden folgendermaßen gespeichert:

    $_POST['X'][0] == Erste X Position
    $_POST['Y'][0] == Erste Y Position (Die zugehörige zur ersten X Position)

    ...

    $_POST['X'][16] == 17te X Position
    $_POST['Y'][16] == 17te Y Position (Die zugehörige zur 17ten X Position)

    So kann ich z.B. mit einer For Schleife und $i durch dieses Konstrukt durch-iterieren. Klar wird auch eine der altenativen Funktionen, aus denen ich die Lösung haben möchte, irgendwie per For-Schleife durchnavigieren, allerdings sind die vorgefertigten Funktionen um ein Vielfaches schneller. Daher möchte ich sie benutzen.

    Zusammenfassung: $_POST['X'][$i] in Verbindung mit $_POST['Y'][$i] darf nicht ein zweites Mal vorkommen. Wie überprüfe ich das OHNE for Schleife und nicht mit meiner "Lösung" dort oben, die nur ansatzweise funktioniert?
  5. Ich denke es wäre deutlich klüger dein Formular zu ändern.
    Also auf
    $_POST[0]['X'] und $_POST[0]['Y'] Paare. Damit hast du X und Y zusammen und kannst viel einfacher weiterarbeiten.
  6. Autor dieses Themas

    m****r

    nikic schrieb:
    Ich denke es wäre deutlich klüger dein Formular zu ändern.
    Also auf
    $_POST[0]['X'] und $_POST[0]['Y'] Paare. Damit hast du X und Y zusammen und kannst viel einfacher weiterarbeiten.


    Kann ich nicht machen, ich müsste 99% meines Skriptes umbauen und das wäre zu aufwendig. Es muss auch irgendwie so gehen ... Nur leider finde ich keine Möglichkeit.
  7. 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!