Christina: Alle Kombinationen innerhalb eines Arrays

Guten Abend zusammen,

ich hab nen ziemlich kniffliges Problem, evtl fällt ja jemand was ein... :o)

ich hab folgendes Array

$InputArray[0][category] => Array ( [0][id] => 30
                                    [1][id] => 33
                                  )
$InputArray[1][category] => Array ( [0][id] => 50
                                    [1][id] => 55
                                  )

Es können beliebig viele Kategorien hinzukommen und natürlich auch ids...

Ich hätte jetzt gern ein Resultarray zurück, das folgende Werte enthält:
Result[0] = 30.50
Result[1] = 30.55
Result[2] = 33.50
Result[3] = 33.55
...
--> also alle möglichen Kombinationen der jeweiligen Kategorien.

Ich bin sicher, dass dies rekursiv gelöst werden muss, da man ja die Tiefe nicht kennt, also wieviele Kategorien (hab das [category] nur wegen Erklärung dazugeführt...)

Hat vielleicht einer nen Lösungsansatz? Mein Kopf droht schon zu platzen *g*

Wäre sehr dankbar :o)

lg,
Christina

  1. Grüße,
    hatten wir schon öfters^^
    du brauchst bloß eine art "zähler" sprich - du läufst array 1 durch, zu jedem wert von array 1 läufst du array 2 durch, für jeden wert von array 2 läufst du array 3 durch etc.

    rechenaufwand steigt exponentiell.

    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    http://www.sexgott-or-not.com/?test=428054
  2. Hello,

    sieht so aus, als müsstest Du dafür beide "Arrays" rekursiv durchlaufen.

    Das wäre schon die halbe Miete:

    $_target = array();

    function combine($_data, &$_target, $addval)
    {
      if (is_array($_data))
      {
        foreach($_data as $key => $val)
        {
          $_data[$key] = combine($val, $_target, $addval);
        }
      }
      else
      {
        $_target[] = $_data. ".$addval";
      }

    return $_data;
    }

    in $_target sollten sich nachher die Kombinationen mit $addval finden.
    Nun musst Du nur noch eine Funktion aufbauen, die Dir alle "$addval" aus dem zweiten Array holt und um diese herumbauen.

    Allerdings willst Du ja nicht das

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de