Warning: I rarely use PHP, so this deals only with a general algorithm that should work in almost any language, and not something specific to PHP.
Presumably, you have a word in which the letters were rearranged, and you want to find which words can be made of these letters.
If this is correct, the general idea is quite simple: take a copy of your list of words and sort the letters in each word in alphabetical order. Put the sorted and unsorted versions of each word next to each other and sort everything by sorted words (but keeping each unsorted word along with its sorted version). You might want to collapse duplicates together so that (for example) instead of {abt: bat} and {abt: tab} you have: {abt: bat, tab}
Then, to combine the scrambled word, sort its letters in alphabetical order. Look for matches in the dictionary (since it is sorted, you can use binary search). When you find a match, the result will be the word (or words) associated with this group of sorted letters. Using the example above, if the scrambled word was "tba", you would sort it to get "abt", and then look at "abt" to get "bat" and "tab".
Edit: As @Moron noted in the comments, sorting and binary search are not really decisive points in and of themselves. The main points are to turn all equivalent inputs into identical keys, and then use some kind of quick key search to find a word for that key.
Sorting letters in each word is one of the easiest ways to turn equivalent entries into identical keys. Sorting a list and performing a binary search is an easy way to quickly find keys.
In both cases, there are many alternatives. I'm not at all sure that the alternatives are likely to improve performance, but they certainly could.
For example, instead of a pure binary search, you might have a second level of index that tells you where the keys starting with βaβ were keys starting with βbβ, etc. Given that several extremely frequently used letters are near the beginning of the alphabet (for example, "e" and "a"), you might be better off sorting the words so that the letters are relatively unusual ('q', 'z', etc. ) are located at the front of the key, and the most frequently used letters are at the end. This would give that first search, based on an initial character, the greatest discrimination.
On the sort / binary search side, there are probably more alternatives and probably more effective arguments for using something else. Hash tables usually allow you to search in (almost) constant time. Attempts can significantly reduce storage, especially when many words have a common prefix. The only obvious drawback is that the code for one of them probably works more (although the type of the PHP array is based on hash settings, so you can probably use it pretty well).