Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    prelevare prima occorrenza di un elemento in un array

    Magari è una cavolata, ma proprio non ci arrivo O.O Anche cercato su google e in questo forum, ma nulla...
    Ho un array che contiene una roba tipo: (pippo) (pluto) (pluto) (pippo) etc... il problema in questo caso sono le ripetizioni. Con questo...
    codice:
    while ($log=mysql_fetch_assoc($res2)) { //Cicla fino ad ottenere il numero impostato ($numero) di risultati DIVERSI
                    if($log[codice_azione]!=$logdamostrare[$count][codice_azione]){ //Se il link tirato fuori è differente dall'ultimo messo nell'array, lo aggiunge all'array
                        $count++;
                        $logdamostrare[$count][cosa]=$log[cosa];
                        $logdamostrare[$count][link]=$log[link];
                        $logdamostrare[$count][codice_azione]=$log[codice_azione];
                        if ($count>=$numero) break;
                    }
    
                }
    ...sono riuscito a tirare fuori tutte le prime occorrenze di ogni sequenza di un elemento. Significa che nel caso sopra mi tira fuori (pippo) (pluto) (pippo), mentre io vorrei (pippo) (pluto) e basta.
    Ora l'unica cosa che mi viene in mente è creare un nuovo array in cui aggiungere gli elementi e scorrerlo tutto ad ogni ciclo (?!) per vedere se un elemento c'è già prima di prelevarlo. Sinceramente mi sembre "un accrocchio" come si dice dalle mie parti. C'è una soluzione più pulita? O meglio ancora, una funzione che fa già questo lavoro? Ho guardato le funzioni per la gestione di array in PHP ma non c'è niente del genere...
    Occhio per occhio... sessantaquacchio.

  2. #2
    devi struttare la funzione in_array()

    essa verifica l'esistenza di un valore all'interno di un array restituendo un valore boleano
    TRUE se è già presente quell'elemento all'interno dell'array

    oppure puoi sfruttare array_unique()

    che elimina i duplicati da un array restituendo l'array dato

  3. #3
    Cavolo, in_array() l'avevo anche letta della documentazione ma li per li non ci avevo pensato...
    array_unique() è veramente perfetta! Grazie mille per l'aiuto!
    Ciao!
    Occhio per occhio... sessantaquacchio.

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.