Nah, you'd just put your alphabet in its usual order in an array. Then one character is less than another if it's earlier in the array than the other.
In fact, it can be easier than that.
$alphabet = array("\\xD8\\xA7", "\\xD8\\xA8", "\\xD9\\xBE", "\\xD8\\xAA", etc.);
$alphabet = array_flip($alphabet);
With that flip, you can tell that \xD8\xBE < \xD8\xAA because
$alphabet["\\xD8\\xBE"]<$alphabet["\\xD8\\xAA"]
Now to extend that to strings.
Reverse the two strings and compare the first two characters.
If they're different then one is earlier than the other, and you have your answer.
If they're the same then go on to the next pair of characters.
Keep doing that until you either have an answer (in which case you can return that answer),
or one string turns out to be the shorter (in which case that one is less than the other),
or you get to the end of both strings (in which case they're equal).
As far as "sorting Unicode", the only sorting that makes sense would be in Unicode coding order - Does Thai become before or after Georgian?