3v4l.org

run code in 300+ PHP versions simultaneously
<?php $format = 'AAA-###000'; $voucherCode = ''; $charSet = 'ABCDEFGHJKLMNPQRSTUVWXYZ'; //removed O and I, they can easily be mistaken for numbers $numberSet = '0123456789'; $length = strlen($format); $charCount = strlen($charSet); $numberCount = strlen($numberSet); for ($i=0; $i < $length; $i++) { if ($format[$i] == '#') //alpha $voucherCode .= substr($charSet, mt_rand(0, $charCount-1), 1); elseif($format[$i] == '0') //numerical $voucherCode .= substr($numberSet, mt_rand(0, $numberCount-1), 1); else //specific alpha character $voucherCode .= $format[$i]; } echo $voucherCode;

preferences:
32.31 ms | 402 KiB | 5 Q