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.
SELECT anno_reg FROM archivio WHERE annullato = 0 ORDER BY anno_reg DESC;
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 ).
  1. ['anno_reg'] = 2021
  2. ['anno_reg'] = 2020
  3. ['anno_reg'] = 2020
  4. ['anno_reg'] = 2020
  5. ['anno_reg'] = 2020
  6. etc.
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.

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