Il problema, o almeno uno, è che con la funzione in_array() tu controlli se c'è un valore col nome del professionista, invece tu la imposti come chiave dell'array, quindi il tuo script si comporta così:
- cerca se c'è un valore col nome del professionista nell'array
- non c'è, quindi crea un nuovo elemento con chiave il nome del professionista e come valore un array con i contatori a zero
- incrementa il contatore desiderato
quando vai ad incrementare il valore del professionista esistente:
- cerca nei valori il nome del professionista, non c'è perché l'avevi impostato come chiave!
- crea un nuovo elemento con chiave il nome del professionista e come valore un array con i contatori a zero
di fatto sovrascrivi i dati inseriti in precedenza, non li modifichi.
Devi controllare se esiste il professionista usando la funzione array_key_exists(), non in_array()

Rispondi quotando