- array_merge: documentation ( source)
- var_export: documentation ( source)
- array_values: documentation ( source)
<?php
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;
}
$in = [
1 => 'мама',
3 => 'раму',
7 => 'раму',
8 => 'мыла',
13 => 'мама',
];
$flipped = [];
foreach ($in as $key => $value) {
$flipped[$value][] = $key;
}
$flipped = array_values($flipped);
$result = get_combinations($flipped);
var_export($result);