Зачем нужна сортировка пузырьком?
Но зачем писать этот сложный алгоритм, когда можно сделать как в коде ниже
и результат будет тот же.Уверен что данный алгоритм был приведен для примера или в образовательных целях. Здесь важен не код, а алгоритм, по которому работает сортировка. Во всех функциях сортировки внутри функция, похожая на пузырьковую сортировку, в той или иной степени, просто написанная на C и скомпилированная в виде готовой функции. Подробнее можно посмотреть тут.
ну а как по твоему устроена функция asort. Это конечно не сортировка пузырьком, но тоже какой-то алгоритм (быстрая сортировка или merge sort хз как это в пхп). Разные алгоритмы используются в разных ситуациях.  Их стоит знать если хочется заоптимизировать что-то с сортировками. К примеру bubbleSort используется в основном только в целяю обучения или если у нас почти весь массив отсортирован и нужно поменять 1-2 элемена и проходов будет не много.