Adding on to what bond at noellebond dot com said, if you want to remove an index from the end of the array, if you use unset, the next index value will still be what it would have been.
Eg you have
<?php
$x = array(1, 2);
for ($i = 0; $i < 5; $i++)
{
unset($x[(count($x)-1)]); $x[] = $i;
}
?>
You would expect:
Array([0] => 1, [1] => 4)
as you want it to remove the last set key....
but you actually get
Array ( [0] => 1 [4] => 2 [5] => 3 [6] => 4 )
This is since even though the last key is removed, the auto indexing still keeps its previous value.
The only time where this would not seem right is when you remove a value off the end. I guess different people would want it different ways.
The way around this is to use array_pop() instead of unset() as array_pop() refreshes the autoindexing thing for the array.
<?php
$x = array(1, 2);
for ($i = 0; $i < 5; $i++)
{
array_pop($x); $x[] = $i;
}
?>
This returns the expected value of x = Array([0] => 1, [1] => 4);
Hope this helps someone who may need this for some odd reason, I did.