Forum Moderators: coopster
array('Happy', 'Sad', 'Angry', 'Hopeful'),
array('Outgoing', 'Introverted'),
array('Tall', 'Short', 'Medium'),
array('Handsome', 'Plain', 'Ugly')
OUTPUT:
Happy Outgoing Tall Handsome
Happy Outgoing Tall Plain
Happy Outgoing Tall Ugly
Happy Outgoing Short Handsome
Happy Outgoing Short Plain
Happy Outgoing Short Ugly
Happy Outgoing Medium Handsome
Happy Outgoing Medium Plain
Happy Outgoing Medium Ugly
Happy Introverted Tall Handsome
Happy Introverted Tall Plain
Happy Introverted Tall Ugly
Happy Introverted Short Handsome
Happy Introverted Short Plain
Happy Introverted Short Ugly
Happy Introverted Medium Handsome
Happy Introverted Medium Plain
Happy Introverted Medium Ugly
Sad Outgoing Tall Handsome
Sad Outgoing Tall Plain
Sad Outgoing Tall Ugly
Sad Outgoing Short Handsome
Sad Outgoing Short Plain
Sad Outgoing Short Ugly
Sad Outgoing Medium Handsome
Sad Outgoing Medium Plain
Sad Outgoing Medium Ugly
Sad Introverted Tall Handsome
Sad Introverted Tall Plain
Sad Introverted Tall Ugly
Sad Introverted Short Handsome
Sad Introverted Short Plain
Sad Introverted Short Ugly
Sad Introverted Medium Handsome
Sad Introverted Medium Plain
Sad Introverted Medium Ugly
Angry Outgoing Tall Handsome
Angry Outgoing Tall Plain
Angry Outgoing Tall Ugly
Angry Outgoing Short Handsome
Angry Outgoing Short Plain
Angry Outgoing Short Ugly
Angry Outgoing Medium Handsome
Angry Outgoing Medium Plain
Angry Outgoing Medium Ugly
Angry Introverted Tall Handsome
Angry Introverted Tall Plain
Angry Introverted Tall Ugly
Angry Introverted Short Handsome
Angry Introverted Short Plain
Angry Introverted Short Ugly
Angry Introverted Medium Handsome
Angry Introverted Medium Plain
Angry Introverted Medium Ugly
Hopeful Outgoing Tall Handsome
Hopeful Outgoing Tall Plain
Hopeful Outgoing Tall Ugly
Hopeful Outgoing Short Handsome
Hopeful Outgoing Short Plain
Hopeful Outgoing Short Ugly
Hopeful Outgoing Medium Handsome
Hopeful Outgoing Medium Plain
Hopeful Outgoing Medium Ugly
Hopeful Introverted Tall Handsome
Hopeful Introverted Tall Plain
Hopeful Introverted Tall Ugly
Hopeful Introverted Short Handsome
Hopeful Introverted Short Plain
Hopeful Introverted Short Ugly
Hopeful Introverted Medium Handsome
Hopeful Introverted Medium Plain
Hopeful Introverted Medium Ugly
My question:
How do I go about creating an input form where a user can determine the values in each array before submitting it for the script to show all permutations?
The script:
<?php
header('Content-Type: text/plain');
function showCombinations($string, $traits, $i)
{
if ($i >= count($traits))
echo trim($string) . "\n";
else
{
foreach ($traits[$i] as $trait)
showCombinations("$string $trait", $traits, $i + 1);
}
}
$traits = array
(
array('Happy', 'Sad', 'Angry', 'Hopeful'),
array('Outgoing', 'Introverted'),
array('Tall', 'Short', 'Medium'),
array('Handsome', 'Plain', 'Ugly')
);
showCombinations('', $traits, 0);
?>
Many thanks for your help (and patience) on my first post on WebmasterWorld.
then when you submit to the script, just pull them down and explode them as you have in your showCombinations from the array you make.
<!-- Using text boxes(freestyle) for user input -->
<!-- All values must be separated by a comma and are undetermined-->
<!-- The number of values are undetermined -->
<form action="index.php" method="POST">
<input type="text" name="cat[]">Cat1<br>
<input type="text" name="cat[]">Cat2<br>
<input type="text" name="cat[]">Cat3<br>
<input type="text" name="cat[]">Cat4<br>
<input type="submit" value="submit">
</form><!--Using checkboxes for user input-->
<!--Values and amounts are pre-determined-->
<!--Field names should be consistent for each category-->
<form action="index.php" method="POST">
Mood:
<input type="checkbox" name="mood[]" value="happy"> happy
<input type="checkbox" name="mood[]" value="sad"> sad
<input type="checkbox" name="mood[]" value="angry"> angry
<input type="checkbox" name="mood[]" value="hopeful"> hopeful <br>
Personality:
<input type="checkbox" name="personality[]" value="outgoing"> outgoing
<input type="checkbox" name="personality[]" value="introverted"> introverted<br>
Height:
<input type="checkbox" name="height[]" value="tall"> tall
<input type="checkbox" name="height[]" value="short"> short
<input type="checkbox" name="height[]" value="medium"> medium<br>
Looks:
<input type="checkbox" name="looks[]" value="handsome"> handsome
<input type="checkbox" name="looks[]" value="plain"> plain
<input type="checkbox" name="looks[]" value="ugly"> ugly<br>
<input type="submit" value="submit">
</form>
<?//generating array for checkbox input method
foreach($_POST as $post){
$cat2[]= $post; //trait set for checkbox inputs
}//generating array for textbox input method
$cat = $_POST['cat']; //trait set for textbox inputs
foreach(array_keys($cat) as $key){
$cat[$key] = explode(",", $cat[$key]);
}function showCombinations($string, $traits, $i)
{
if ($i >= count($traits))
echo trim($string) . "<br>\n";
else
{
foreach ($traits[$i] as $trait)
showCombinations("$string $trait", $traits, $i + 1);
}
}showCombinations('', $cat, 0);
echo"<hr>";
showCombinations('', $cat2, 0);
?>