I have this php code how can i make it generate random from 1 to 10
$seed = str_split('aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ123456789');
$rand = array_rand($seed, 16);
$convert = array_map(function($n){
global $seed;
return $seed[$n];
},$rand);
$var1 = implode('',$convert);
so need this one to show random not 16 like its there but random length from 1 to 16 each time user comes.
Here's a code snippet without using map
function generateRandString($length = 10) {
$chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
$charsLength = strlen($chars);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $chars[rand(0, $charsLength - 1)];
}
return $randomString;
}
You can shuffle() the array and use array_slice() to get n number of items from the array.
Including a rand() inside the array slice means it returns a random length between 1 and 10 characters.
$seed = str_split('aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ123456789');
shuffle($seed);
echo implode("", array_slice($seed,0,rand(1,10)));
Easiest way to achieve what you want without rewriting all your code is to replace:
$rand = array_rand($seed, 16);
with
$rand = array(array_rand($seed, mt_rand(1,10)));
That will simply pass a different length parameter to array_rand()
on each run