Reputation: 1013
i want use foreach loop dynamically in php, i have task to print AAA to 999 and i'm using this code and it's work perfect,
Reference :: http://www.onlinecode.org/generate-string-aaaa-9999-using-php-code/
$addalphabeth = array_merge(range('A', 'Z'), range(0,9));
$setcharacter = [];
foreach ($addalphabeth as $setcharacter[0]) {
foreach ($addalphabeth as $setcharacter[1]) {
foreach ($addalphabeth as $setcharacter[2]) {
//$setcatalog[] = vsprintf('%s%s%s', $setcharacter);
echo "<b>".vsprintf('%s%s%s', $setcharacter)."</b>";
echo "<br>";
}
}
}
now my issue is have to print that AAAAA to 99999 (need loop 5 time) or AAAAAAAA to 99999999 (need loop 8 time) , so for this i use loop n time. I have no idea how to do it, any help or suggestion will be appreciated.
Upvotes: 2
Views: 310
Reputation: 8611
Evening, here is my solution, using recursion. To setup a recursion, you have to think of two things. What is your stop condition, and what do to with non-stopping conditions.
So here is the code:
function printAto9($width,$prefix = '')
{
$chars = array_merge(range('A', 'Z'), range(0,9));
if ($width == 1)
{
foreach ($chars as $char)
{
echo "$prefix$char\n";
}
}
else
{
$width--;
foreach ($chars as $char)
{
echo printAto9($width,$prefix . $char);
}
}
}
printAto9(5);
I put printAto9(5);
as a test, you can use whatever.
But careful, the output is monstrous pretty quick, and you can kill your php (memory or time limit).
Upvotes: 1