Very short trick: prendere elementi casuali da un array in PHP

La funzione shuffle() di PHP “mescola” letteralmente gli elementi di un array:

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

Se abbiamo un array con n elementi e vogliamo visualizzarne m in modo randomico, possiamo usare:

1
2
3
4
5
6
// carica gli elementi
$a = array( "ele1","ele2","ele3","ele4" );
// mescola gli elementi
shuffle( $a );
// crea un nuovo array $na con i primi 2 (mescolati)
$na = array_slice( $a, 0, 2 );

Questa tecnica può essere utile in svariati casi, come in questo esempio qui sotto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<ul>
<?php
// elementi di un lista puntata
$a = array(
           "<li>Elemento 1</li>",
           "<li>Elemento 2</li>",
           "<li>Elemento 3</li>",
           "<li>Elemento 4</li>",
           "<li>Elemento 5</li>",
           "<li>Elemento 6</li>",
           "<li>Elemento 7</li>",
           "<li>Elemento 8</li>",
           "<li>Elemento 9</li>"
          );
shuffle( $a );
$na = array_slice( $a, 0, 4 );
echo implode('', $na );
?>
</ul>

2 commenti a: “Very short trick: prendere elementi casuali da un array in PHP”

  1. 28 gen, 2009 Very short trick: prendere elementi casuali da un array in PHP …:

    [...] approfondire consulta articolo originale: Very short trick: prendere elementi casuali da un array in PHP … Articoli correlati: URL Revealer : come rivelare l’url completo degli short [...]

  2. 16 feb, 2009 Very short snippet: shuffle() in Javascript e Actionscript | Undolog.com:

    [...] PHP esiste una comoda funzione chiamata shuffle() che permette di mescolare un array (vedi Very short trick: prendere elementi casuali da un array in PHP). Un’ottima versione per Javascript l’ho trovata qui. Qui sotto il codice leggermente rivisto: [...]

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<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


Stop SOPA