php arrays verschmelzen - einfach?

    ACHTUNG dies ist das ALTE Forum!!

    Das neue gibt es unter https://discourse.bohramt.de!

      php arrays verschmelzen - einfach?

      hi, vielleicht sind hier experten die mir da helfen können.
      ich hab das problem dass ich 2 arrays mergen soll und zwar nach dem folgendem
      muster.

      $reihe_1 = array(1,5);
      $reihe_2 = array(2,6);
      $reihe_3 = array(3,7);
      $reihe_4 = array(4,8 ); //aus 8 ) wird sonst der da 8) :lache:
      $array1 = array($reihe_1,$reihe_2,$reihe_3,$reihe_4);

      $reihe_1 = array(1,0);
      $reihe_2 = array(2,10);
      $reihe_3 = array(3,6);
      $reihe_4 = array(4,11);
      $array2 = array($reihe_1,$reihe_2,$reihe_3,$reihe_4);

      also ergebniss soll ich dann von den verbundenen arrays jeweils
      das hoechste paar herausfiltern...
      bin leider mit noch keiner function auf 'den' gruenen zweig gekommen.
      vielen dank fuer eure hilfe

      hab ich vergessen,
      es kann auch sein dass ich nen array krieg wo zb. die erste reihe fehlt
      oder in der mitte eine rausfehlt :(
      :kiste:

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „HPX“ ()

      RE: php arrays verschmelzen - einfach?

      Mmh, ich hab jetzt natürlich keinen schimmer, wieviel Ahnung du von php überhaupt hast, aber ich versuchs mal.

      Kannst du bereits eigene Funktionen definieren?
      falls net -> php.net/manual/de/language.functions.php

      ich würd hier nämlich einfach ne eigene Funktion maxpaar($arr1,$arr2) schreiben, die als Rückgabewert das höhere paar oder eben ein leeres array liefert - wie auch immer "höher" überhaupt definiert ist, das hast uns nämlich noch net verraten (für das beispiel ergeben sich da mehrere möglichkeiten) ;)
      greetz
      Raven
      ***********************************************************
      * save time - think before you post nonsense *
      das ist eine einfache unverschachtelte for schleife. Was willst du denn da noch vereinfachen? Anders wuerde das eine fertige Funktion auch nicht machen.

      Wenn du weisst, das es immer eine 4x2 Matrix ist, kannst du das ganze noch durch eine Rotationsmatrix schicken. Das sieht dann vielleicht im Code eleganter aus, ist aber nicht schneller (solange du das nicht auf der GPU rechnen laesst)
      schleife hab ich eh, aber wenn zb. beide ersten zeilen fehlen muss ich
      irgendwie sicherstellen dass ein (1,0) paar generiert wird und da haeng
      ich etwas fest wie ich es am besten hinbekomme.

      ne for funkt net, da die letzten paare oft nicht existieren und trotzdem mit
      0 erzeugt werden muessen...das laesst sich aber mit do schoen machen.

      aber ich glaub ich komm der loesung etwas naeher
      :kiste:
      du weisst
      * das es hinterher immer vier reihen sein muessen. also eine for bis vier.
      * das du nur ueber zwei arrays mergen willst, also zweimal if (denn fuer die zwei vergleiche baue ich keine funktion/loop)
      * das der default wert eine 0 ist



      Ich bin derzeit in PHP nicht mehr drin (Python...) Syntaxfehler bitte verzeihen aber so in etwa:

      Quellcode

      1. $result = array();
      2. for ($i=0; $i++; $i<4) {
      3. $max=0;
      4. if (array_key_exists($i, $array1)) and ($array1[1]>$max) {
      5. $max = $array1[1];
      6. }
      7. if (array_key_exists($i, $array2)) and ($array2[1]>$max) {
      8. $max = $array2[1];
      9. }
      10. $result[] = array($i+1, $max);
      11. }
      12. return $result


      Wenn es um performance geht kannst du ggf auch ein array als basis nehmen und dieses modifizieren (spart speicheroperationen)