Сортировка массивов в PHP
Вставка
- Опубліковано 22 сер 2024
- Разработка веб-приложения на PHP. Посмотрите уроки: webformyself.c...
Исходники к уроку тут: webformyself.c...
В этом уроке будет рассмотрена такая тема, как сортировка массивов в PHP. При решении практических задач с массивами данных приходится работать очень часто и нередко возникает задача сортировки имеющихся массивов. Если это простой массив, тогда нет ничего проще - PHP предлагает такие функции, как sort или rsort.
Но что, если нужно сортировать многомерный массив? Здесь начинающие программисты часто начинают изобретать велосипед… однако, есть более простой способ - функция usort, работу с которой вы увидите в этом видео.
Лучшее объяснение на белом свете!!!
Суперский урок)
Спасибо)
Огромное спасибо за ролик! Лучшего разъяснения я еще нигде не видел.
Когда я читал документацию, не понял что есть $a и $b, для чего возвращать в пользотвальской функции то или иное значение, что потом с ним будет делаться, так и в видео я этого не услышал.
И поиск по нету дает полное копирование с php.net)) Как я понял, проходит перебор и сравнение всех вариантов, например arr(3, 2, 6, 8). Сначала сравниваем 3-2, 3-6, 3-8 и так далее. Если = 1, то элемент двигается вниз (в конец) массива, если = -1, то на вверх (в начало) массива, и = 0 оставляет на месте. Как то так)))
Отличный урок от меня царский лайк
Спасибо ;)
Спасибо вам за то, что вы делаете.
Ещё не успел посмотреть, Владлен ты лучший. Хотел это всегда тебе написать
Я не Владлен, меня зовут Андрей :)
@@matroskin978 Передай Владлену что, он лучший. И Андрею тоже передай что же красавчик. Передашь, хорошо)
@@WorldSkaynet Хорошо)
Спасибо! :)
спасибо
Супер, тема интересная , жду продолжения ;)
Спасибо, над продолжением подумаю)
Спасибо. Всё очень понятно.
Спасибо!
Спасибо за урок
03:32 USORT
Спасибо, хотелось бы еще разбор функций для преобразования массивов, типа array_filter(), array_map(), array_reduce() и др. на более сложных примерах
не раскрыт функционал, как она работает. что во время проверки попадает в $a и $b, что между чем сравнивается так что бы оно отсортировало масив. рассказано целый 0. Типа я вам перепишу мануал и все. Уроки обычно классные, но тут них не понял ка она работает, как по масиву проходет и т.д.
го в php.net и читайте
Привет. Я согласен что тема в плане перебора массива не до конца раскрыта, мы новички многого не знаем и если есть люди которые не боятся говорить что я не понял то это хорошо, лучше понять чем чем просто знать что есть функция которая всё сделает и я тупо всё скопипастил и мне ок.
поддерживаю!
Расдокументировать в php ini дебагер и еще пару строк которые в модуле локалсервера в модуле, настроить phpstrorm прописать пути и по брекпоинту можно все проследить
Напиши перед return print_r( $a . "". $b.";"); и посмотришь, что сравнивается.
Спасибо, внятно
Вопрос на засыпку. Это все хорошо работает, если массив относительно небольшой. А как лучше сортировать масив, скажем, из 10к+ элементов? 100к+ элементов? (я уже молчу про 1м+)
там уже нужно бы применять алгоритмы кастомные , следуя алгоритмам разделения и т/д. А по поводу скорости нужно пробовать. На практике где вы возьмете такие массивы?
Думаю, будет очень долго. Походу здесь пузырьковая сортировка под капотом
Уроки на тему различных алгоритмов сортировки скоро будут. Из них можно будет узнать и о скорости работы разных алгоритмов, и о самих алгоритмах.
7:03 а можно хоть малейшее пояснение, почему если меньше то 1 а в противном случае -1, функция всегда возвращает true, то почему именно -1 в противном случае - на что это влияет если по факту это тоже true. Это влияет только на сортировку по desc/asc ибо return ($a < $b) ? -1 : 1; будет по возрастанию
Спасибо, очень подробно и доходчиво! А возможно отсортировать по двум полям одновременно? Например по 'name' и 'age'?
Хорошо бы рассмотреть сортировку ассоциативных массивов с составными ключами и значениями массива - будет?
Нормалек
Debug для чего ставите ?
как узнать сколько одного и того же цифра в массиве php, например $a=[3,33,3,45,5,3,3], сколько есть 3 в массиве,,, если не сложно ответьте на вопрос пожалуйста.
А с буквами где?
Комментарий, лайк)
Спасибо)
put subtitules
А лайфхак из js не сработает?)) В cb просто написать return $a - $b;
По логике же вернет отрицательное число, 0 или положительное, что вполне устраивает функцию сортировки usort()
да сработает