Hey !
I have found this get_combinations function which kinda seems to do what i need. BUT I need the results to only have unique values "[item1] => A [item2] => C [item3] => B" is OK, but "[item1] => A [item2] => A [item3] => B" is NOT. How can i get rid of this non unique combination ?
Thanks
function get_combinations($arrays) {
$result = array(array());
foreach ($arrays as $property => $property_values) {
$tmp = array();
foreach ($result as $result_item) {
foreach ($property_values as $property_value) {
$tmp[] = array_merge($result_item, array($property => $property_value));
}
}
$result = $tmp;
}
return $result;
}
$combinations = get_combinations(
array(
'item1' => array('A', 'B'),
'item2' => array('A', 'D', 'E', 'F'),
'item3' => array('B', 'E', 'F'),
)
);
var_dump($combinations);
array(24) {
[0]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "A"
["item3"]=>
string(1) "B"
}
[1]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "A"
["item3"]=>
string(1) "E"
}
[2]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "A"
["item3"]=>
string(1) "F"
}
[3]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "D"
["item3"]=>
string(1) "B"
}
[4]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "D"
["item3"]=>
string(1) "E"
}
[5]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "D"
["item3"]=>
string(1) "F"
}
[6]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "E"
["item3"]=>
string(1) "B"
}
[7]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "E"
["item3"]=>
string(1) "E"
}
[8]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "E"
["item3"]=>
string(1) "F"
}
[9]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "F"
["item3"]=>
string(1) "B"
}
[10]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "F"
["item3"]=>
string(1) "E"
}
[11]=>
array(3) {
["item1"]=>
string(1) "A"
["item2"]=>
string(1) "F"
["item3"]=>
string(1) "F"
}
[12]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "A"
["item3"]=>
string(1) "B"
}
[13]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "A"
["item3"]=>
string(1) "E"
}
[14]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "A"
["item3"]=>
string(1) "F"
}
[15]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "D"
["item3"]=>
string(1) "B"
}
[16]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "D"
["item3"]=>
string(1) "E"
}
[17]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "D"
["item3"]=>
string(1) "F"
}
[18]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "E"
["item3"]=>
string(1) "B"
}
[19]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "E"
["item3"]=>
string(1) "E"
}
[20]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "E"
["item3"]=>
string(1) "F"
}
[21]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "F"
["item3"]=>
string(1) "B"
}
[22]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "F"
["item3"]=>
string(1) "E"
}
[23]=>
array(3) {
["item1"]=>
string(1) "B"
["item2"]=>
string(1) "F"
["item3"]=>
string(1) "F"
}
}
int(1)