Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Depieri Barduchi

[Resolvido] como fazer um random ?

Recommended Posts

Esta função espera como argumentos 2 números inteiros, como você deve ter visto no guia de referência.

 

$nomes['valor'] é um inteiro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos dizer que seja "2" (o segundo valor é o número maior), você deve forçá-lo para tipar para inteiro, experimente:

 

print mt_rand( (int)$nomes['valor'], 5 );
ou

print mt_rand( intval( $nomes['valor'] ), 5);
Não me lembro qual dos dois faz a transformação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos dizer que seja "2" (o segundo valor é o número maior), você deve forçá-lo para tipar para inteiro, experimente:

 

print mt_rand( (int)$nomes['valor'], 5 );
ou

print mt_rand( intval( $nomes['valor'] ), 5);
Não me lembro qual dos dois faz a transformação.

 

vlw cara mas msm assim aparece apenas um valor

só quero bagunçar a ordem que vai aparecer

 

$nome['valor']. =" joão";

$nome['valor']. =" maria";

$nome['valor']. =" josé";

$nome['valor']. =" carlos";

$nome['valor']. =" andre";

 

print $nome['valor'];

 

no caso ele vai imprimir joão maria josé carlos andre

 

preciso randomizar isso entendeu, axo que explicando assim é melhor srsrrs

vlw t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhh

Desculpe, eu não tinha entendido o que você está fazendo.

Testa isso:

 

print_r( array_rand  ( $nomes , 5 ) );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhh

Desculpe, eu não tinha entendido o que você está fazendo.

Testa isso:

 

print_r( array_rand  ( $nomes , 5 ) );

imaginei que faria diferença pq percebi q n era isso ainda srsr

mas msm assim não foi

 

"

Warning: array_rand() [function.array-rand]: Second argument has to be between 1 and the number of elements in the array in C:\wamp\www\superguia\rodape.php on line 52

"

 

erro na linha exata do print

¬¬

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque o array não tem 5 elementos. Faz assim que dá certo:

 

print_r( array_rand ( $nomes , count($nomes) ) );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o array dele não é um array xD, é uma string concatenada..

 

Perceba:

$nome['valor']. =" joão";

$nome['valor']. =" maria";

$nome['valor']. =" josé";

$nome['valor']. =" carlos";

$nome['valor']. =" andre";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o array dele não é um array xD, é uma string concatenada..

...pois é, eu ainda não conhecia esta forma de se trabalhar com arrays http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o array dele não é um array xD, é uma string concatenada..

...pois é, eu ainda não conhecia esta forma de se trabalhar com arrays http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

sem sucesso

apresenta [valor]

 

teria alguma outra maneira então ??

vlw t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu propus está correto, basta você arrumar o array, que você está concatenando ao invés de criar as chaves:

$nome['valor']. =" joão";
$nome['valor']. =" maria";
$nome['valor']. =" josé";
$nome['valor']. =" carlos";
$nome['valor']. =" andre";
Deixe assim:

$nome['valor'][] =" joão";
$nome['valor'][] =" maria";
$nome['valor'][] =" josé";
$nome['valor'][] =" carlos";
$nome['valor'][] =" andre";

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu propus está correto, basta você arrumar o array, que você está concatenando ao invés de criar as chaves:

$nome['valor']. =" joão";
$nome['valor']. =" maria";
$nome['valor']. =" josé";
$nome['valor']. =" carlos";
$nome['valor']. =" andre";
Deixe assim:

$nome['valor'][] =" joão";
$nome['valor'][] =" maria";
$nome['valor'][] =" josé";
$nome['valor'][] =" carlos";
$nome['valor'][] =" andre";

 

mesma coisa cada

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, fiz aqui e testei e deu certo:

 

<?php

$nomes['valor'][] =" joão";
$nomes['valor'][] =" maria";
$nomes['valor'][] =" josé";
$nomes['valor'][] =" carlos";
$nomes['valor'][] =" andre";

print_r( array_rand ( $nomes['valor'] , count($nomes['valor']) ) );

Deve ter dado um erro aí no seu código, dizendo que $nome não existe. O nome correto é $nomes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

se os valores serão determinados por voce...

 

voce pode criar um vetor com esses valores e na hora de exibir voce pode usar o comando:

 

rand(0,x) para aleatoriamente escolher uma posição.

 

$t[0]="nome 1";

$t[1]="nome 2";

$t[2]="nome 3";

 

$valor = rand(0,2);

echo $t[$valor];

 

 

Espero ter ajudado....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

se os valores serão determinados por voce...

 

voce pode criar um vetor com esses valores e na hora de exibir voce pode usar o comando:

 

rand(0,x) para aleatoriamente escolher uma posição.

 

$t[0]="nome 1";

$t[1]="nome 2";

$t[2]="nome 3";

 

$valor = rand(0,2);

echo $t[$valor];

 

 

Espero ter ajudado....

então cara eu dei exemplo de 3 itens mas quero receber n nomes do banco dei um exemplo pra 5

mas vlw msm assim

vou tentar melhorar o código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, fiz aqui e testei e deu certo:

 

<?php

$nomes['valor'][] =" joão";
$nomes['valor'][] =" maria";
$nomes['valor'][] =" josé";
$nomes['valor'][] =" carlos";
$nomes['valor'][] =" andre";

print_r( array_rand ( $nomes['valor'] , count($nomes['valor']) ) );

Deve ter dado um erro aí no seu código, dizendo que $nome não existe. O nome correto é $nomes.

vlw cara é isso aew só preciso tirar (Array ( [0] ...) mas ta beleza ajudou e muito brigadão a td

vlw e t+.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.