Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84

    PHP - trovare duplicati in array multidimensionale

    Buongiorno,
    dovrei trovare i duplicati contenuti in un array multidimensionale. Normalmente per un array normale uso questo codice e non ho problemi:
    Codice PHP:
    $array_ID_accesso[] = "MARCO";    
    $array_ID_accesso[] = "LUCA";    
    $array_ID_accesso[] = "MARCO";    
    $array_ID_accesso[] = "PAOLO";    
    $array_ID_accesso[] = "MARCO";
        
    $distinct array_unique($array_ID_accesso);    
    $duplicates array_diff_key($array_ID_accesso$distinct);     
    print_r($duplicates); 
    Però adesso ho un array multidimensionale e devo trovare tutti i dati con lo stesso "$nome" e contemporaneamente recuperare il valore "$comune"

    Codice PHP:
    $array_ID_accesso[$nome] = ["nome" => $nome"comune" => $comune]; 
    Se qualcuno ha dimestichezza con questo genere di problemi e mi potesse dare una mano, gliene sarei grato.

    Grazie

  2. #2
    codice:
    Crea 2 array vuoti.
    Cicla per l'array multidimensionale
        Controlla nel primo array vuoto se il nome dell'elemento corrente è presente.
            Se è presente, salva l'elemento corrente nel secondo array
        Aggiungi al primo array il nome dell'elemento corrente
    Al termine, il secondo array conterrà tutti gli elementi duplicati

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    codice:
    Crea 2 array vuoti.
    Cicla per l'array multidimensionale
        Controlla nel primo array vuoto se il nome dell'elemento corrente è presente.
            Se è presente, salva l'elemento corrente nel secondo array
        Aggiungi al primo array il nome dell'elemento corrente
    Al termine, il secondo array conterrà tutti gli elementi duplicati
    E' proprio necessario usare un doppio ciclo for?
    Non si potrebbe usare array_column per cercare i dati uguali?

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Dove avrei scritto di un "doppio ciclo for"?

    Ti bastano un https://www.php.net/foreach , un https://www.php.net/if e un https://www.php.net/in_array
    Scusami è stata una svista e rileggendo ho visto che in realtà con il tuo metodo è molto semplice. Il problema è che non mi funziona e non so il perché. So con sicurezza che ci sono una ventina di doppioni, ma non me ne rileva nessuno.
    Questo è il mio codice:
    Codice PHP:
    $array_distinct = array();
    foreach(
    $array_Accessi_registrati as $key => $value) {    
         
    $ID_univoco_accesso $array_Accessi_registrati[$key]["ID_univoco_accesso"];   
         if (!
    in_array($ID_univoco_accesso$array_distinct)) {
              
    $array_distinct[] = $ID_univoco_accesso;        
         } else {            
             print(
    $ID_univoco_accesso);       
         }    

    L'array '$array_distinct' viene popolato, ma non mi rileva mai l'eccezione che mi riporta al print.
    Ho usato un solo array, perché al posto del print, memorizzerò i dati in una variabile che poi stamperò nella pagina.

  6. #6
    Crea 2 array vuoti...


    Se dico 2 significa che ne servono 2...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Crea 2 array vuoti...


    Se dico 2 significa che ne servono 2...
    Hai ragione, ho risolto. L'idea del doppio array è stata ottima. Ho perso tempo perché avevo anche un problema strano su
    Codice PHP:
    $ID_univoco_accesso 
    e non me ne ero accorto. In pratica risultava essere sempre diverso e quindi non riuscivo mai a trovare i doppioni.

    Grazie

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.