Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    105

    Popolare array da file csv modalità random

    codice:
    <?php
    function csvToArray($filepath){setlocale(LC_ALL, 'en_US.UTF-8');
    if (($handle = fopen($filepath, "r")) !== FALSE) {$nn = 0;
    while (($data = fgetcsv($handle, 1000, "|")) !== FALSE) {
    $num_elementi = count($data); 			
    for ($x=0; $x<$num_elementi; $x++) {$csvarray[$nn][$x] = $data[$x]; } $nn++;}fclose($handle); } else {echo "File non trovato";} 	return $csvarray; } 
    ?>
    Utilizzo questa funzione per prendere da un file csv le righe e creare un array.

    Il punto è che le righe vengono prese dalla prima all'ultima, a me servirebbe prendere righe a caso, per un massimo di x righe (es 50), e senza doppioni.

    Se qualcuno potesse gentilmente mettermi sulla buona strada...

    grazie

  2. #2
    Potresti mettere tutto nell' array, poi con shuffle ordini in modo casuale, inserisci il tutto in un db, fai una select dal db settando LIMIT e DISTINCT
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    105
    ti ringrazio ma volevo evitare di usare il db altrimenti mi bastava popolare una tabella con i dati del file .csv e fare una query random. Pensavo ci fosse un comando per "pescare" a caso, capisci?

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Non c'è motivo di usare l'array.
    0-c00l ti ha messo sulla buona strada:
    metti tutto in un array, lo randomizzi con shuffle e ne estrai una parte (da1 a 50) con http://www.w3schools.com/php/func_array_slice.asp

  5. #5
    Allora potresti usare array_rand settando anche il secondo valore, ma credo ci sia la possibilità che capitino anche risultati uguali.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.