Muito curto truque: ter elementos aleatórios de um array em PHP

A função shuffle() PHP "mistura" literalmente os elementos de um array:

1
2
3
4
array ( "ele1" , "ele2" , "ele3" , "ele4" ) ; $ A = matriz ("ele1", "ele2", "ele3", "ele4");
$a ) ; print_r ($ a);
$a ) ; embaralhar ($ a);
$a ) ; print_r ($ a);

in modo randomico, possiamo usare: Se temos uma matriz com n elementos e queremos mostrar m distribuídas aleatoriamente, podemos usar:

1
2
3
4
5
6
/ / Carrega os elementos
array ( "ele1" , "ele2" , "ele3" , "ele4" ) ; $ A = matriz ("ele1", "ele2", "ele3", "ele4");
/ / Mixes
$a ) ; embaralhar ($ a);
/ / Cria uma nova matriz com o primeiro n $ 2 (misto)
array_slice ( $a , 0 , 2 ) ; $ Na = array_slice ($ a, 0, 2);

Esta técnica pode ser útil, em muitos casos, como no exemplo a seguir:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<ul>
<? Php
/ / Itens em uma lista com marcadores
array ( $ A = gama (
"<li> Item 1 </ li>",
"<li> Item 2 </ li>"
"<li> Item 3 </ li>"
"<li> Item 4 </ li>"
"<li> Item 5 </ li>"
"<li> Item 6 </ li>",
"<li> Item 7 </ li>"
"<li> Elemento 8 </ li>",
"<li> Elemento 9 </ li>"
);
$a ) ; embaralhar ($ a);
array_slice ( $a , 0 , 4 ) ; $ N = array_slice $ (a, 0, 4);
( '' , $na ) ; echo implode ('', $ n);
>
</ Ul>

2 comentários para: ""

  1. 28 de janeiro de 2009 Muito curto truque: ter elementos aleatórios de um array em PHP ... :

    [...] Além disso consultar o artigo original: Muito curto truque: ter elementos aleatórios de um array em PHP ... Artigos relacionados: URL Revelador: como revelar a url completa do curta [...]

  2. 16 de fevereiro de 2009 Muito curto trecho: shuffle () em Javascript e Actionscript | Undolog.com :

    [...] PHP não é um recurso útil chamado shuffle (), que permite misturar um array (ver Muito curto truque: ter elementos aleatórios de um array em PHP). Uma ótima versão para Javascript eu encontrei aqui. Abaixo está o código ligeiramente revisto [...]

Deixe um comentário

TAG XHTML permita: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de entrada:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL