Le altre risposte sono giuste, ma per le ragioni sbagliate.
Tenendo i dati in un array PHP, sarà molto più veloce da recuperare che da un database, anche se il set di dati è memorizzato nella cache. Il problema è che nelle normali architetture PHP ogni richiesta viene gestita da un processo separato. Quindi ogni richiesta che necessita di accedere ai dati dovrà caricare l'intero set di dati in memoria. Questo richiede tempo. Il punto in cui diventa più costoso eseguire questa operazione piuttosto che recuperare elementi da un database dipende da molti fattori diversi, ma come regola generale si tratta di circa 100 record. Ci sono applicazioni in cui questo modello ha senso, ma si basano su volumi di dati molto piccoli e un processo controllato di modifica/gestione dei dati.
Il tuo prossimo problema è che probabilmente vorrai registrare alcune transazioni rispetto allo stock - ciò significa cambiare i dati - e ciò significa serializzare l'accesso per garantire che 2 transazioni separate non avvengano contemporaneamente. È impossibile implementarlo in PHP (senza un demone dedicato per giudicare) senza avere deadlock.
Se stai facendo pagare qualcuno per l'implementazione del codice, allora dovrebbe essere assolutamente ovvio che provare a implementarlo in memoria è una pessima idea.