Equilibrium: PHP Arrays?

Hallo,

ich hab ein 2D Array, dass folgende Werte beinhaltet:

X   Y   B
0    0   7   15
1    3   3   8
2    4   4   12
3    19  3   0

Ich möchte nun überprüfen, was der kleinste Wert dieses 2D Arrays in der Spalte B ist und die entsprechende Zeile erhalten. 0 Wäre das kleinste B und ich möchte dementsprechend 3 zurückerhalten, weil der B Wert 0 in der Spalte 3 vorkommt. Mit min() kriege ich das aber nicht hin - weiß jemand wie das geht?

Vielen Dank. :)

  1. Hi,

    Ich möchte nun überprüfen, was der kleinste Wert dieses 2D Arrays in der Spalte B ist und die entsprechende Zeile erhalten. 0 Wäre das kleinste B und ich möchte dementsprechend 3 zurückerhalten, weil der B Wert 0 in der Spalte 3 vorkommt. Mit min() kriege ich das aber nicht hin - weiß jemand wie das geht?

    Du könntest das Array zuerst nach der „Spalte B“ sortieren (bspw. per usort), und dann das erste Element nehmen.

    Oder du durchläufst es einfach in einer Schleife, und merkst dir dabei den Zeilenindex mit dem kleinsten B-Wert.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Du könntest das Array zuerst nach der „Spalte B“ sortieren (bspw. per usort), und dann das erste Element nehmen.

      Danke, ich hab das jetzt so gemacht:

      sort($this->openlist);

      Nun kann ich mit z.B. $this->openlist[0]["X"] Auf den zugehörigen X-Wert mit dem niedrigstem G-Wert zugreifen.

      Ich habe noch eine Frage:

      Ich möchte auch noch überprüfen, ob $x und $y in der openlist bereits eingefügt sind, da beide Werte zusammen nur einmal vorkommen dürfen. Mit in_array() kann ich das aber nicht machen, da die X und Y Werte, die ich abfragen muss in verschiedenen Spalten abgelegt sind. Mir schwant, dass ich die X und Y Werte aus der openlist hierfür extra in ein neues Array einlesen muss, um dann vergleichen zu können, ob es die Werte schon gibt. Hat jemand da eine bessere Idee?

      Nochmal danke.

  2. Hello,

    ich hab ein 2D Array, dass folgende Werte beinhaltet:

    X   Y   B
    0    0   7   15
    1    3   3   8
    2    4   4   12
    3    19  3   0

    Ich möchte nun überprüfen, was der kleinste Wert dieses 2D Arrays in der Spalte B ist und die entsprechende Zeile erhalten. 0 Wäre das kleinste B und ich möchte dementsprechend 3 zurückerhalten, weil der B Wert 0 in der Spalte 3 vorkommt. Mit min() kriege ich das aber nicht hin - weiß jemand wie das geht?

    Mit Iteration?

    Da Du leider überhaupt nicht gezeigt hast, wie Du das "Array" in PHP aufgebaut hast (Code, Zuweisungen), kann man auch nicht viel mehr dazu schreiben, ohne gleich wieder einen Roman draus zu machen :-))

    Stichworte für die Archiv-Suche: Spaltenarray, Zeilenarray, Baumstruktur, Liste

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

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