-
Domanda su array_rand
Salve, ho questi codici che funzionano bene, solamente che mi stampa a video i numeri corrispondenti alle parole e non le parole stesse.. Come rimedio?
Codice PHP:
<?
$stringa = $_POST['nomi'];
$lista = explode(' ', $stringa);
echo implode(' ', array_rand($lista, 2));
?>
-
array rand restituisce gli indici numerici dell'array
mentre il funzionamento di implode richiede come secondo parametro le stringhe..
credo sia questo il problema...
-
mm l' implode finale l' ho visto da una guida, quindi non credo stia lì il problema.. Vabbè al massimo ripeto il comando 2 volte LOL
-
Come ti è stato già detto, array_rand, restituisce n chiavi ( generate in modo casuale ) corrispondenti agli elementi di un array.
Quindi il comportamento dello script è corretto, anche se non è quello che desideri.
Ciò che devi fare è recuperare l'elemento dell'array che corrisponde all'indice.
Intituivamente, dico che potresti usare array_map per trasformare le chiavi nei rispettivi valori:
Codice PHP:
$stringa = $_POST['nomi'];
$lista = explode(' ', $stringa);
echo implode(' ', array_map(create_function('$v', 'return $GLOBALS[\'lista\'][$v];'), array_rand($lista, 2)));
-