3v4l.org

run code in 300+ PHP versions simultaneously
<?php function cartesian($input) { $result = array(); while (list($key, $values) = each($input)) { if (empty($values)) { continue; } if (empty($result)) { foreach($values as $value) { $result[] = array($key => $value); } } else { $append = array(); foreach($result as &$product) { $product[$key] = array_shift($values); $copy = $product; foreach($values as $item) { $copy[$key] = $item; $append[] = $copy; } array_unshift($values, $product[$key]); } $result = array_merge($result, $append); } } return $result; } $data = array ( 'machineAttribute' => array ( 'TTT 1000 S', 'TTT 1100 S' ), 'technicalAttribute' => array ( 'Certificate', 'Software' ), 'languageAttribute' => array ( 'English', 'Spanish', ) ); $combos = cartesian($data); $final_result = []; foreach($combos as $combo){ $final_result[] = implode('/',$combo); } print_r($final_result);

preferences:
115.68 ms | 408 KiB | 5 Q