Стековая организация данных удобна для создания динамической функциональности. Массивы на PHP, функции push & pop на первых и последних элементах позволяют организовать рекурсивный стек. Используя объекты с разной функциональностью, можно получить эффективные решения.
PHP array_push() добавляет новый элемент в конец массива. Функция array_pop() извлекает последний элемент из массива. Это позволяет работать с последним элементом в контексте его функциональности.
Синтаксис и аналогии
Обычная операция $arr[] = 'apple' работает подобно функции PHP array_push('apple'). Отличие функции от операции присваивания, которая создает новый элемент массива: она позволяет добавлять несколько элементов и сообщает количество элементов в массиве после завершения операции.
Добавление элементов в массив без указания ключа удобнее применения функции. Бывают случаи, когда массив одномерный, но его элементы удобно рассматривать парами, блоками или совокупностями. Фактически, когда нужно добавить сразу несколько элементов в массив на PHP, array_push - удобнее. Учитывайте это.
Сочетание в триаде: array push, PHP и ассоциативный массив - в действительности не представляется возможным. Указать нужный индекс здесь нельзя. Но правила PHP не ограничивают разработчика. Если левая часть идеи: добавить элемент в стек (массив), то правая часть идеи - абстракция.
Структура массива и уровень логики
По сути, ассоциативный массив - это простое сочетание ключа и значения. Если рассматривать массив как функциональность в контексте его элементов, смысл трансформируется на совершенно иной уровень.
Для разработчика не важно как устроен массив, важно как его использовать. Если ключом является последовательность: 0, 1, 2, ... - это хороший вариант. Если ключами выступают слова: 'фрукты', 'овощи', 'злаки', ... - это другая логика представления информации.
Переход на уровень объектов в качестве элементов массива дает возможность превратить массив в логику взаимодействия функциональностей.
Объекты в массивах
Один реальный объект может определять собой 'яблоко' и тогда у объекта может быть различная функциональность. Для фермера - это действия по оптимизации урожайности, а свойства - качество урожая. Для торговца - это сроки поставки, сорта, вкусовые качества, интересы потребителей. Для покупателя - это данные о внешнем виде, полезности продукта, местах приобретения.
Когда речь идет не только об одном продукте (объекте), а о нескольких - уместно использовать массив и здесь PHP array_push() - простое решение и нет необходимости в ключах. Последовательность помещения объектов в массив не имеет особенного значения.
Фермер «в цикле» может просмотреть весь свой ассортимент и выполнить нужные действия в нужное время как по объекту 'яблоко', так и по всем остальным: 'груша', 'слива', ... Аналогично поступит торговец и покупатель.
Есть задача, но решение этой задачи удобно переложить на сам объект в том применении, которое актуально в конкретной области для достижения конкретной цели. Добавив однажды функцией PHP array_push() некоторое количество объектов, можно просто применять массив, предоставляя объектам возможность самостоятельно реализовывать свою функциональность.