To popatrz jak się zmieniają liczby na litość boską

mov/1/X od 0 do 4999
mov/2/x od 5000 do 9999
Tak wyłapujesz katalog nadrzędny.
Podrzędne masz analogicznie, tyle że na zakresach 10 razy mniejszych... no i mają start nie od 1 ale od 0
mov/1/0 od 0 do 499
mov/1/1 od 500 do 999
Tak więc robisz dzielenie liczb przez 5000 zaokrąglasz w dół i dodajesz 1. A potem resztę z tego działania dzielisz przez 500 i zaokrąglasz tylko w dół.
Przykład? Liczba 7645:
7645/5000 = 1,529 = 1+1 = 2
2645/500 = 5,29 = 5
Sprawdzamy Twoje IFy ma wyjść mov/2/5/
A co mi wyszło? 2 oraz 5.
Sprawdźmy dla granicznych dla pewności...
4999/5000 = 0,9998 = 0+1 = 1
4999/500 = 9,998 = 9
1/9 -> Prawidłowe!
5000/5000 = 1+1 = 2
0/500 = 0
2/0 -> Prawidłowe!
Jak widzisz... Ten skrypt jest mocno do przodu bo już potrafi operować na 9/9, co u Cienie skończy się przy $nr1 = 49999, a Ty dopiero masz 6/3 skryptem przewidziane

Poucz się więcej matmy a nie siedź tylko przed kompem

EDIT: Popatrz zresztą na wyniki dzieleń... Są 10 razy mniejsze! To znów ułatwienie bo nie musisz wcale liczyć reszty z dzielenia przez 5000, mogąc to zastąpić odejmowaniem. Bierzesz liczbę i dzielisz ja przez 5000. Do całości dodajesz 1, a ułamek mnożysz razy 10 i zaokrąglasz w dół.
Owe 7645 przerobię raz jeszcze:
7645/5000 = 1,529 = 1+1=2
0,529*10 = 5,29 = 5
Nie banalniejsze?
$liczba = $nr1/5000;
$kat1 = floor( $liczba ); $kat2 = floor( ($liczba - $kat1)*10
); //można też zamiast ($liczba - $kat1) dać fmod($liczba, 5000) czy $liczba%5000, ale odejmowanie powinno być szybsze niż modulo.
$fo = 'mov/'.($kat1+1).'/'.$kat2.'/';
Co jest krótsze i wydajniejsze?

3 linijki czy 100 operacji if else