Well, you first need to understand what kind of structure you are working with.
You say "each instance of the array describes one box". I assmue, then, that you have some other structure (probably an array) holding a whole bunch of "$info" arrays? So you don't have one array, you have an array of arrays; a "two dimensional" array:
array $boxes =>(
'box1 => array($ip, $mac, $ifDescr, $ifName, $hostname)
'box2 => array($ip, $mac, $ifDescr, $ifName, $hostname)
'box3 => array($ip, $mac, $ifDescr, $ifName, $hostname)
)
You want to sort the primary array by some value in the secondary array. Can't do that easily. Just like a DB, you will need to create some type of index keyed by the value you want to sort by. In other words, as you build your $boxes array, you also build a $boxIndex array that can be sorted.
ie: When you:
$info = array($ip, $mac, $ifDescr, $ifName, $hostname);
$boxes["$boxID"]=$info;
...then also:
$boxIndex["$boxID"]=$ifName;
since $ifName is the field you want to sort by. When you are done building the array, you can sort $boxIndex using one of the PHP array functions, then loop through $boxIndex to access $boxes and output in the correct order.
-- HTH
-- Rich