Oops, yes, you're right - array_multisort is for several single field arrays. I've used this to sort a text file like this before, though -
In outline:
Read through the file, and "explode" each record into its separate fields. Add each field to a separate array.
So at the end of the file, we have as many arrays as fields.
Now you can use array_multisort to effectively sort the file on any of its fields. Depends what order you list the arrays as parameters.
$fp = fopen ("file.txt","r");
while ($data = fgets ($fp, 100)) {
$field = explode(";",$data);
$first[] = $field[0];
$second[] = $field[1];
$third[] = $field[2];
$fourth[] = $field[3];
}
fclose ($fp);
array_multisort ($second,$fourth,$first,$third);
for ($i=0; $i<count($second); $i++) {
echo "$first[$i] $second[$i] $third[$i] $fourth[$i]<br>";
}