Покинул форум
Сообщений всего: 14
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
Зачем нужна данная функция и как она используется в реальных проектах?
IllusionMH
Отправлено: 11 Марта, 2014 - 20:24:55
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Pavlentiy, таким образом реализуется очередь на обработку. при этом не составляет труда добавлять новые элементы в конец, пока обработка до них не дошла.
Pavlentiy
Отправлено: 11 Марта, 2014 - 21:17:56
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
IllusionMH пишет:
Pavlentiy, таким образом реализуется очередь на обработку. при этом не составляет труда добавлять новые элементы в конец, пока обработка до них не дошла.
Спасибо большее за ответ. Можно пожалуйста продемонстрировать кусок кода из реального проекта с комментариями. Просто в доке примеры, мягко скажем, далеки от реальных ситуаций.
teddy
Отправлено: 11 Марта, 2014 - 21:30:55
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
У этой функции нет "конкретной области" применения. Что бы было так вот тут её нужно применять и точка. Всё зависит от задачи что нам требуется и выбор функции для решения конкретной задачи так же исходят из смысла самой задачи.
array_shift может извлекать первый элемент массива. Где это может понадобится? Да где угодно, в зависимости от логики Вашего скрипта.
Покинул форум
Сообщений всего: 14
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
teddy пишет:
У этой функции нет "конкретной области" применения. Что бы было так вот тут её нужно применять и точка. Всё зависит от задачи что нам требуется и выбор функции для решения конкретной задачи так же исходят из смысла самой задачи.
array_shift может извлекать первый элемент массива. Где это может понадобится? Да где угодно, в зависимости от логики Вашего скрипта.
Документация не дает понимания того, как применять эту функцию и как понять, когда и где ёё надо применять. Видел в скрипте, который подготавливал запрос к бд. Вот хотел узнать здесь, что и как.
OrmaJever
Отправлено: 11 Марта, 2014 - 21:51:23
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Pavlentiy пишет:
Можно пожалуйста продемонстрировать кусок кода из реального проекта с комментариями.
То есть вы думаете тут у каждого есть реальные примеры со всеми функциями php? Зачем вам пример? Если вы не знаете где её применить то не используйте её, просто держите в голову что такая функция существует, придёт время и вы про неё вспомните. (Добавление)
пошарьтесь тут https://github[dot]com/search?q=arra[dot][dot][dot]rm&type=Code . Я уверен что в двух миллионах записей вы найдёте что-то из очень реального примера.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Hapson
Отправлено: 12 Марта, 2014 - 16:09:50
Посетитель
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
Pavlentiy
Pavlentiy пишет:
Документация не дает понимания того, как применять эту функцию и как понять, когда и где ёё надо применять.
Блин... я чуть под стол не упал!
array_shift
array_unshift
array_pop
array_push
Действительно, зачем же они?
А array_reverse или shuffle - это вообще выше всякого понимания!
Да на кой черт вообще вся эта куча функций!? Написали кучу букав, да еще на нескольких языках, да еще куча сайтов передрали все это... но вот незадача - никто не пишет, как конкретно приготовить.
Кстати, не задумывался, накой нужны echo и print?
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
esterio
Отправлено: 12 Марта, 2014 - 16:11:46
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Это означает, что результат array_shift оказался на 3 порядка хуже, чем вариант с явным удалением ключа. И это - несмотря на то, что функция прекомпилирована. Естественно, чем дальше, тем хуже, так как сложность второго варианта есть O(1)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
LIME
Отправлено: 13 Марта, 2014 - 15:47:39
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
нифига не обещает выборку первого элемента и не сдвигает все индексы
для чего и используется array_shift
EuGen пишет:
Не рекомендую пользоваться функцией array_shift без явной нужды.
незнаю даже где ее можно применить без нужды
разве кто-то решит получить таким образом первый элемент и при этом далее не будет использовать массив
EuGen
Отправлено: 13 Марта, 2014 - 16:02:48
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Смысл в том, что для извлечения первого элемента массива, в случае, если индексы не важны, достаточно связки current+key+unset, что будет намного быстрее. Разумеется, это зависит от контекста (имею ввиду, выборку первого элемента). Однако array_shift, в свою очередь, так же не полностью безопасен при работе с указателями массивов, так как при выходе за границу он сбросит указатель на первый доступный:
Строго говоря, конструкции не эквивалентны, но в большинстве случаев, для извлечения первого элемента (особенно актуально в циклах) - намного корректнее использовать функции указателей.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
LIME
Отправлено: 13 Марта, 2014 - 16:08:31
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
ыгым
пожалуй действительно в большинстве случаев нет нужды сохранять отсчет индексов с 0
спасибо
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.