I am generating an integer from 5-10.
once I generate an integer ranging from 5-10, the loop should choose a string on my array that has a character length
based on the random integer that is generated.
example:
random integer generated: 10
the system should display a string that has a length of 10 character
so either it will display the testNames1
or testNames2
because it has 10 character length
I tried doing this on my code, but it doesn’t work.
<?php function getName(){ $names = array( 'Juans', 'Luisss', 'Pedroaa', 'testNames1', 'testNames2', 'testName3', 'test', //This should not be return because im only generating a number random of 5-10 and this character has only 4 character length 'tse', //This should not be return because im only generating a number random of 5-10 and this character has only 3 character length // and so on ); $randomString = ""; for ($i = 0; $i <count($names); $i++) { $value = rand(5,10); $length_string = strlen($names[$i]); if ($value == $length_string) { return "name:".$names[$i].$value; } } } echo getName(); ?>
Can anyone help me on how to do this?
Advertisement
Answer
What you need to do is first create a list of strings matching the length and then pick a random one from them. So loop through all of the strings, check the length and add to $match
, then use array_rand()
to pick one of the matching ones…
function getName($random_num) { $names = array ( 'Juans', 'Luisss', 'Pedroaa', 'testNames1', 'testNames2', 'testName3', 'test', //This should not be return because im only generating a number random of 5-10 and this character has only 4 character length 'tse', //This should not be return because im only generating a number random of 5-10 and this character has only 3 character length // and so on ); $randomString = ""; $match = []; foreach ( $names as $name ) { $length_string = strlen($name); if ($random_num == $length_string) { $match[] = $name; } } // If non found return '' return !empty($match) ? $match[array_rand($match)] : ''; }