Alle Kombinationen innerhalb eines Arrays
Christina
- php
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
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
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