Sadly, with your array as it is, you cant, reason being that there is nothing to tell you that rolled brisket for example is beef. I did look at the product codes, and whilst udv 1,2,3 looked fairly well ordered (Beef, Lamb, Pork) it seemed to go downhill a bit from there.
Now, if ever a project cried out for a MySQL database 😃
You could build a nice little table consisting of:
product_code
product_name
product_price
product_availability
product_heading
The last entry, product_heading could be the meat categories you want, and you could group the output from the db or get each category separately depending on how you wanted the page to look. Product availability could be a simple enum yes no field, so you could have some entries that didn't display when they weren't available, things like pheasant which are sometimes out of season.
I've briefly cast an eye over your javascript, and don't see anything that would be incompatible with going down the db route.
I guess you could add another field to your array equivalent to my product_heading db field above and use the array_search function, that might work if a db is unavailable to you.
http://uk2.php.net/manual/en/function.array-search.php
Sorry to not be more helpful
Blu