Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá.
Tenho um problema, na verdade, não é um problema.
Tenho um array com 30 elementos, sendo numeros e letras.
Preciso sortear 5 caracteres deste array.
Eu encontrei um jeito que foi esse:
$caracteres = array('0','1','2','3','d','e','f','g','h','i','j','x','y','z','k','w');
$sorteio1 = array_rand($caracteres);
$sorteio2 = array_rand($caracteres);
$sorteio3 = array_rand($caracteres);
$sorteio4 = array_rand($caracteres);
$sorteio5 = array_rand($caracteres);
$codigo = $caracteres[$sorteio1].$caracteres[$sorteio2].$caracteres[$sorteio3].$caracteres[$sorteio4].$caracteres[$sorteio5];
Só que se eu precisasse sortear 100 caracteres, eu teria que ir repetindo $sorteio6, $sorteio7, até 100.
Teria alguma forma de simplificar esse processo? Sendo que eu nao precise criar várias variaveis?
Veja a documentação de array_rand. O segundo parâmetro define quantos elementos serão retornados pela função. Basta passar 100 no segundo parâmetro :thumbsup:
.
Montei novamente o script, e preciso agora de 15 caracteres no codigo sorteado. Só que tem um problema, preciso inserir um travessao " - " a cada 5 caracteres.
Teria de usar expressão regular?
Use chunk_split para dividir em pedaços de 5 caracteres e depois use implode para juntar eles com o -
Veja a documentação de array_rand. O segundo parâmetro define quantos elementos serão retornados pela função. Basta passar 100 no segundo parâmetro :thumbsup: