search for in the  
<array_padarray_product>
Last updated: Thu, 19 May 2005

array_pop

(PHP 4, PHP 5)

array_pop -- Pop the element off the end of array

Description

mixed array_pop ( array &array )

array_pop() pops and returns the last value of the array, shortening the array by one element. If array is empty (or is not an array), NULL will be returned.

Note: This function will reset() the array pointer after use.

Example 1. array_pop() example

<?php
$stack
= array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>

After this, $stack will have only 3 elements:

Array
(
   [0] => orange
   [1] => banana
   [2] => apple
)

and raspberry will be assigned to $fruit.

See also array_push(), array_shift(), and array_unshift().



User Contributed Notes
array_pop
15-Dec-2004 10:29
strrchr is a lot more useful than the other example using array_pop for finding the extension of a file. For example:

<?php
$ext
= strrchr($filename, ".");
?>

$ext will contain the extension of the file, including a ".", if the file has an extension, and FALSE if the file has no extension. If the file has multiple extensions, such as "filename.tar.gz", then this construction will just return the last extension.
eddie at metafoundry dot com
25-Nov-2004 10:35
Quick way to get the extension from a file name using array_pop:

$ext = array_pop(explode(".",$filename));
30-Mar-2004 03:55
A function to delete an array value that recalculates the index ( its very short and easy to understand ).
Hope this might help someone...

<?php
/* Usage:
   $array : Array
   $indey : Integer
  
   The value of $array at the index $index will be
   deleted by the function.
*/
function array_trim ( $array, $index ) {
   if (
is_array ( $array ) ) {
     unset (
$array[$index] );
    
array_unshift ( $array, array_shift ( $array ) );
     return
$array;
     }
   else {
     return
false;
     }
   }
?>
Alex Dowgailenko
15-Dec-2003 05:36
array_pop() can be usefull for fetching extentions of files, especially in cases where there might be more than one period in the filename.

eg:

<?php
$filename
= "textfile.txt.bak";
$tmp = explode(".", $filename);
$ext = array_pop($tmp);

print_r($ext); // Shows "bak"
?>
21-Oct-2003 03:46
Be aware that using array_pop on an associative array that uses a numeric string as a key changes the key:

<?php
$stack
= array("12" => "green", "54" => "brown", "672" => "blue");
print_r($stack);
$fruit = array_pop($stack);
print_r($stack);
?>

Results of execution:
Array
(
   [12] => green
   [54] => brown
   [672] => blue
)
Array
(
   [0] => green
   [1] => brown
)

However, if there is a non-numeric character in the key, the key will be maintained:

<?php
$stack
= array("g1" => "green", "b1" => "brown", "b2" => "blue");
print_r($stack);
$fruit = array_pop($stack);
print_r($stack);
?>

Results of execution:
Array
(
   [g1] => green
   [b1] => brown
   [b2] => blue
)
Array
(
   [g1] => green
   [b1] => brown
)
ryan8613(at)hotmail(dot)com
08-Jun-2003 08:10
A function that may help some out, considering it's pretty much the one mentioned previously...

<?php
function array_trim($arr, $indice) {
       if(!isset(
$indice)) {
              
$indice = count($arr)-1;
       }
       unset(
$arr[$indice]);
      
array_shift($arr);
       return
$arr;
}
?>

It cuts the given index value off of the array, but without the shift, if  the 'index' value isn't given, it cuts off the end value.
Alex Chacón
28-Feb-2003 07:16
alex.chacon@terra.com
Hi
Here there is a function that delete a elemente from a array and re calculate indexes

<?php
function eliminarElementoArreglo ($array, $indice)
{
   if (
array_key_exists($indice, $array))
   {
      
$temp = $array[0];
      
$array[0] = $array[$indice];
      
$array[$indice] = $temp;
      
array_shift($array);

      
//reacomodamos índices
      
for ($i = 0 ; $i < $indice ; $i++)
       {
          
$dummy = $array[$i];
          
$array[$i] = $temp;
          
$temp = $dummy;
       }
   }
   return
$array;
}
?>

<array_padarray_product>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 17:35:34 2005 CDT