3v4l.org

run code in 300+ PHP versions simultaneously
<?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);
Output for 7.1.25 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
array ( 0 => array ( 0 => 1, 1 => 3, 2 => 8, ), 1 => array ( 0 => 1, 1 => 7, 2 => 8, ), 2 => array ( 0 => 13, 1 => 3, 2 => 8, ), 3 => array ( 0 => 13, 1 => 7, 2 => 8, ), )

preferences:
179.96 ms | 404 KiB | 184 Q