Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does PHP have built-in data structures?

I'm looking at the PHP Manual, and I'm not seeing a section on data structures that most languages have, such as lists and sets. Am I just blind or does PHP not have anything like this built in?

like image 791
Thomas Owens Avatar asked Aug 22 '08 13:08

Thomas Owens


People also ask

Does PHP have data structure?

PHP has one data structure to rule them all. The array is a complex, flexible, master-of-none, hybrid data structure, combining the behaviour of a list and a linked map.

Does PHP have a stack?

The php stack is defined as the class that will be used for storing the elements in the stack memory. The stack is the sequential set of collections based on a particular property.

What are the basic data structures of the PHP programming language?

Array, list, stack, and queue are examples of linear structures. In nonlinear structures, data are not structured in a sequential way. Graph and tree are the most common examples of nonlinear data structures.

What is stack in PHP?

A Stack is a “last in, first out” or “LIFO” collection that only allows access to the value at the top of the structure and iterates in that order, destructively. Uses a Ds\Vector internally.


2 Answers

The only native data structure in PHP is array. Fortunately, arrays are quite flexible and can be used as hash tables as well.

http://www.php.net/array

However, there is SPL which is sort of a clone of C++ STL.

http://www.php.net/manual/en/book.spl.php

like image 143
Vincent Avatar answered Sep 20 '22 12:09

Vincent


PHP offers data structures through the Standard PHP Library (SPL) basic extension, which is available and compiled by default in PHP 5.0.0.

The data structures offered are available with PHP 5 >= 5.3.0, and includes:

Doubly Linked Lists

A Doubly Linked List (DLL) is a list of nodes linked in both directions to each others. Iterator’s operations, access to both ends, addition or removal of nodes have a cost of O(1) when the underlying structure is a DLL. It hence provides a decent implementation for stacks and queues.

  • SplDoublyLinkedList class
    • SplStack class
    • SplQueue class

Heaps

Heaps are tree-like structures that follow the heap-property: each node is greater than or equal to its children, when compared using the implemented compare method which is global to the heap.

  • SplHeap class
    • SplMaxHeap class
    • SplMinHeap class
  • SplPriorityQueue class

Arrays

Arrays are structures that store the data in a continuous way, accessible via indexes. Don’t confuse them with PHP arrays: PHP arrays are in fact implemented as ordered hashtables.

  • SplFixedArray class

Map

A map is a datastructure holding key-value pairs. PHP arrays can be seen as maps from integers/strings to values. SPL provides a map from objects to data. This map can also be used as an object set.

  • SplObjectStorage class

Source: http://php.net/manual/en/spl.datastructures.php

like image 24
Frederik Krautwald Avatar answered Sep 17 '22 12:09

Frederik Krautwald