Intereting Posts
Попытка вставить текст в файл ВЫШЕ определенную строку Я хочу, чтобы ошибки «Файл не существовал» игнорировались или не регистрировались Доступ к переменной PHP в JavaScript android error org.json.JSONException: Значение <! DOCTYPE типа java.lang.String не может быть преобразовано в JSONObject Установить языковой стандарт в Symfony 2.1 Импорт и обработка текстового файла в MySQL Zend_Pdf Добавить текстовую ссылку на страницу pdf Как установить wkhtmltopdf с привязками PHP в Linux (centos) Генерация случайных эскизов с помощью PHP + FFMPEG Среднее время в часах, минутах и ​​секундах в php Ограничить длину ввода текста, содержащего HTML-теги Как PHP обрабатывает переменные в ОЗУ? Являются ли скалярные и строгие типы в PHP7 функцией повышения производительности? Попытка заставить MySQL подключаться через php в JSON, но возвращая ошибки, связанные с MySQL из php-скрипта Laravel flash или сеансовые сообщения не истекают

php pop / push / shift / unshift, который используется для очередей и для стеков

В PHP существует два способа использования массива в виде стека (LIFO)
и два способа использовать их в качестве очереди (FIFO).

Можно реализовать стек с push и pop ,
но то же самое можно сделать с помощью unshift & shift .

Аналогичным образом можно реализовать очередь с push & shift ,
но то же самое можно сделать с помощью unshift & pop .

Демонстрировать:

 echo "stack push & pop approach:\n"; $s = []; array_push($s, 'first'); array_push($s, 'second'); array_push($s, 'third'); echo array_pop($s) . '-' . array_pop($s) . '-' . array_pop($s) . "\n"; echo "stack unshift & shift approach:\n"; $s = []; array_unshift($s, 'first'); array_unshift($s, 'second'); array_unshift($s, 'third'); echo array_shift($s) . '-' . array_shift($s) . '-' . array_shift($s) . "\n"; echo "queue push & shift approach:\n"; $q = []; array_push($q, 'first'); array_push($q, 'second'); array_push($q, 'third'); echo array_shift($q) . '-' . array_shift($q) . '-' . array_shift($q) . "\n"; echo "queue unshift & pop approach:\n"; $q = []; array_unshift($q, 'first'); array_unshift($q, 'second'); array_unshift($q, 'third'); echo array_pop($q) . '-' . array_pop($q) . '-' . array_pop($q) . "\n"; 

Какие результаты:

 stack push & pop approach: third-second-first stack unshift & shift approach: third-second-first queue push & shift approach: first-second-third queue unshift & pop approach: first-second-third 

Итак, какие функции использовать?