Cada solicitud de PHP debe inicializar todas las variables y después de la solicitud se liberan. Debido a eso, a menudo no vienen situaciones donde las estructuras de datos especiales (como maxheap, linkedlist o queue) son más eficientes que array. También las matrices son mucho más simples de entender y usar para principiantes.
La diferencia de C++ en PHP es que la longitud de las matrices es dinámica. Puede agregar elementos cuando lo desee.
$arr=array();
$arr[]=5; //add integer to array
echo count($arr); //1
$arr[]=7;
echo count($arr); //2
puede crear de forma dinámica y añadir variedad a otra matriz
$arr[]=array();
$arr[2][]=5;
echo count($arr); //3
echo count($arr[2]); //1
Esto creará nueva matriz, añadir elementos con valor de 5 y agregarlo como elemento de array $ arr.
$arr[][]=5;
En las matrices de PHP son tablas hash, lo que puede tener no solamente las teclas de números enteros sino también cadenas:
$arr['somekey']='somevalue';
Si elemento de la matriz es entero, entonces cada elemento requiere una estructura de valores (zval) que tiene 16 bytes. También requiere un cubo de hash, que requiere 36 bytes. Eso da 52 bytes por valor. Los encabezados de asignación de memoria toman otros 8 bytes * 2, lo que da 68 bytes.
Acerca de las matrices en PHP: http://oreilly.com/catalog/progphp/chapter/ch05.html
Relacionado: [¿Cuáles son los beneficios de usar SPL ArrayObject, ArrayIterator, RecursiveArrayIterator en lugar de arreglos regulares?] (Http://stackoverflow.com/questions/4072927/what-are-the-benefits-of-using-spl -arrayobject-arrayrerator-recursivearrayite) (nov 2010); [Beneficios de la interfaz ArrayAccess en PHP?] (Http://stackoverflow.com/q/4319603/367456) (Nov 2010) – hakre