Мой комментарий был скорее про то, что я не понял, почему топикстартер застопорился. Алгоритм он описал достаточно внятно, примеры под рукой тоже есть, а в коде зачем-то полез в посимвольное сравнение.
функция сравнения не обязана быть однострочной. Например, я бы не вспомнил про natsort и просто бы реализовал описанный алгоритм:
1) разделить по пробелу с помощью explode()
2) проверить, что первый (нулевой) кусочек - это число ( например, через is_numeric)
ну и дальше проверки
У днс-а точно есть DRM на странице - всплывает периодически плашка "Хотите включить DRM"?
Если бы я сразу понял, что оказывается не все сайты можно спарсить
P.S.:
Про избыточность что-то загнули...натуральная сортировка много где есть...и просто знать, что она есть - уже достаточно, чтобы зайти в доку и найти имя функции...
P.S.S.:
Автор в итоге взял strnatcmp через usort...тот же флаг в другой руке по сравнению с natsort...и никакие пробелы его не волнуют...пусть будет даже такие данные:
124вадпвалоп
154 вапвапва вапвапва
654вапвапвапвап
и т.д.