Ciao, come da titolo devo trovare dei valori in un array.
So che esiste la funzione PHP array_unique() ma in questo caso non mi funziona.
Vi spiego il problema.
Ho un database con registrati dei dati anno per anno, costituente un archivio diviso per annate, e devo costruire un menù che suddivide le viste di ogni anno, tramite una dropbox.
Tralasciando la dropbox, cosa semplice, il problema è nello scremare gli anni dei vari "archivi".
Per tirare fuori i dati faccio una query in cui tiro fuori il solo campo anno_reg che corrisponde appunto all'anno di registrazione.
Ora quel campo esiste in ogni record, così mi trovo ad esempio per l'anno 2020 3566 record in cui ci sono appunto 3566 record in un campo anno_reg con dentro il valore 2020 e 1 anno_reg con dentro 2021 ( registrato per prova ).SELECT anno_reg FROM archivio WHERE annullato = 0 ORDER BY anno_reg DESC;
Bene, se do array_unique() al risultato, mi riduce tutto al solo valore 2021, cancellando l'intero anno scorso, ma a me serve proprio conoscere i numeri di anni presenti, non l'ultimo registrato ( avrei fatta una altro tipo di query ), per ciclare e il risultato e generare la dropbox.
- ['anno_reg'] = 2021
- ['anno_reg'] = 2020
- ['anno_reg'] = 2020
- ['anno_reg'] = 2020
- ['anno_reg'] = 2020
- etc.
Le cose a cui sto pensando sono: un array_walk() sul risultato, con una funzione di callback che mi tolga tutti i valori di anni uguali, tranne uno, oppure una query SQL che mi faccia la stessa cosa, ma non so al momento come farla.
So che è inizio anno, e molti sono confusi almeno quanto me al momento, ma riuscite a darmi una mano?
Grazie![]()