Les autres réponses sont bonnes - mais pour les mauvaises raisons.
Conserver les données dans un tableau PHP sera beaucoup plus rapide à récupérer qu'à partir d'une base de données - même si l'ensemble de données est mis en cache en mémoire. Le problème est que dans les architectures PHP normales, chaque requête est gérée par un processus séparé. Par conséquent, chaque requête nécessitant un accès aux données devra charger l'ensemble de données complet en mémoire. Cela prend du temps. Le point auquel il devient plus coûteux d'effectuer cette opération plutôt que de récupérer des éléments d'une base de données dépend de nombreux facteurs différents - mais en règle générale, il se situe aux alentours de 100 enregistrements. Il existe des applications pour lesquelles ce modèle a du sens - mais elles reposent sur de très petits volumes de données et un processus contrôlé de modification/gestion des données.
Votre prochain problème est que vous voudrez probablement enregistrer certaines transactions par rapport au stock - cela signifie modifier les données - et cela signifie sérialiser l'accès pour vous assurer que 2 transactions distinctes ne se produisent pas en même temps. Il est impossible d'implémenter cela en PHP (sans un démon dédié pour arbitrer) sans avoir de blocages.
Si vous facturez quelqu'un pour l'implémentation du code, il devrait être évident qu'essayer de l'implémenter en mémoire est une très, très mauvaise idée.