Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Crio uma variável:
$chars = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
$chars2 = "0,1,2,3,4,5,6,7,8,9"
e depois eu tiro as virgulas e embaralho criando um grupo de de 6 caracteres, mas tem que conter 3 números e 3 letras, Para ficar assim "jh23i1" em uma string.
>
15 horas atrás, gabrieldarezzo disse:
Estude:
Conceitos de arrays e obviamente laços de repetição (for)
O que já tentou?
Quando você fala 'em php' já efectuou isso em alguma outra linguagem?
Onde exatamente está sua dificuldade ?
A minha dificuldade é fazer o php pegar 3 de cada, e criar uma string do jeito que eu falei, eu também poderia fazer um shuffle de cada um e pegar os 3 primeiros ou os últimos, e juntar, e embaralhar de novo, mas não sei pegar 3 de cada. :'(
Se quiser usar apenas funções nativas de array:
$chars = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
$chars2 = "0,1,2,3,4,5,6,7,8,9";
$arrayChars = explode("," , $chars);
$arrayNumbers = explode("," , $chars2);
$result = array_merge(array_rand(array_flip($arrayChars) , 3) , array_rand(array_flip($arrayNumbers) , 3));
shuffle($result);
var_dump($result);
[https://3v4l.org/RdPmf](https://3v4l.org/RdPmf)
Só para constar:
- explode: transforma string em array;
- array_flip: inverte as o valor e as chaves (chave se torna valor, valor se torna chave);
- array_rand: sorteia um ou mais valores (depende do segundo parâmetro) e retorna as chaves (por isso foi utilizado o array_flip);
- array_merge: junta dois ou mais arrays;
- shuffle: sorteia o array (para não ficar 3 letras e 3 números em sequência).
Pode ser feito sem usar array, só strings e um for (é claro, array para armazenar apenas):
$chars = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
$chars2 = "0,1,2,3,4,5,6,7,8,9";
$chars = str_replace("," , "" , $chars);
$chars2 = str_replace("," , "" , $chars2);
$result = [];
for($i = 0 ; $i < 6 ; $i++)
{
$result[] = $i < 3
? substr($chars , rand(0 , strlen($chars) - 1) , 1)
: substr($chars2 , rand(0 , strlen($chars2) - 1) , 1);
}
shuffle($result);
var_dump($result);
O resultado é praticamente o mesmo:
[https://3v4l.org/snPMS](https://3v4l.org/snPMS)
E há tantas outras maneiras. Vai do gosto de cada um.
Estude:
http://php.net/explode
http://php.net/rand
Conceitos de arrays e obviamente laços de repetição (for)
O que já tentou?
Quando você fala 'em php' já efectuou isso em alguma outra linguagem?
Onde exatamente está sua dificuldade ?