Every PHP request must initialize all variables and after request they are freed. Because of that not often comes situations where special data structures (like maxheap, linkedlist or queue) are more efficient than array.
Also arrays are much simpler to understand and use for beginner.
Difference from C++ in PHP is that arrays length is dynamic. You can add elements whenever you want.
$arr=array();
$arr[]=5; //add integer to array
echo count($arr); //1
$arr[]=7;
echo count($arr); //2
you can dynamically create and add array to another array
$arr[]=array();
$arr[2][]=5;
echo count($arr); //3
echo count($arr[2]); //1
This will create new array, add element with value 5 and add it as element to array $arr.
$arr[][]=5;
In PHP arrays are hash tables, so you can have not only integer keys but also strings:
$arr['somekey']='somevalue';
If array element is integer then each element requires a value structure (zval) which takes 16 bytes. Also requires a hash bucket - which takes 36 bytes. That gives 52 bytes per value. Memory allocation headers take another 8 bytes*2 - which gives 68 bytes.
About arrays in PHP: http://oreilly.com/catalog/progphp/chapter/ch05.html