As markus said...
Things like arrays use hashtables etc. Likewise with PHP arrays you can use them as any sort of container you like,
- array_pop, array_push for implementing stacks.
- next(), end(), reset(), prev() can be used to make arrays simulate doubley linked lists.
- hash (more specificly string) based array keys
B Trees are used in DBs, and though not a PHP things, things like 3D games/apps will use similar structures for culling and allsorts.
PHP does this all behind the scenes, along with garbage collection. People who haven't used C++ and the mad syntax of things like ....
std::vector<std::string, ContainerDatatypeHere> p;
(OK, you might use the namespace keyword to remove the std:: but still it's a mouthful and you need to stick to using that datatype for objects inside it).
Likewise there is no easy foreach() in C++ so you end up declaring an itterator and using a long winded for command, along with the confusing fact that you need to use the dereference operator in C to get the object contained in the iterator object.
Basically, there are uses for this algorithms, you use them all of the time without realising in PHP so it doesn't become as obvious. As a result it would be pointless implementing things like Hashtables in PHP.
As markus points out with hash lookups, it illustrates how optimising in PHP or any high level language is not always as direct as you think, especially if you have recently come from a background of using something like BASIC.