3v4l.org

run code in 300+ PHP versions simultaneously
<?php function getCombinations(...$arrays) { $result = [[]]; foreach ($arrays as $property => $property_values) { $tmp = []; foreach ($result as $result_item) { foreach ($property_values as $property_value) { $tmp[] = array_merge($result_item, [$property => $property_value]); } } $result = $tmp; } return $result; } $atrs_ref = ['p', 'm', 'g']; $colors=['blanco', 'negro', 'rojo']; $sizes=['corta', 'larga'] ; print_r(getCombinations($atrs_ref, $colors, $sizes));

preferences:
43.14 ms | 405 KiB | 5 Q