Dipende da cosa intendi per "in un botto solo". In questo caso io userei un banalissimo ciclo foreach, array_walk() mi sembra meno indicata perche' devi tenere traccia di un'informazione che va oltre il singolo elemento dell'array; ovviamente si puo' fare ma devi usare una variabile globale.