array_pop

(PHP 4, PHP 5)

array_pop -- Извлечь последний элемент массива

Описание

mixed array_pop ( array &array )

array_pop() извлекает и возвращает последнее значение параметра array, уменьшая размер array на один элемент. Если array пуст (или не является массивом), будет возвращён NULL.

Замечание: Эта функция сбрасывает указатель массива после использования.

Пример 1. Пример использованияarray_pop()

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

После этого, в $stack будет только 3 элемента:

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

и raspberry будет присвоено переменной $fruit.

См. также array_push(), array_shift(), и array_unshift().



array_pop
rmondragon at gmail dot com
07-Jun-2005 02:03
In a previous example ...
<?php
function array_trim ( $array, $index ) {
   if (
is_array ( $array ) ) {
     unset (
$array[$index] );
    
array_unshift ( $array, array_shift ( $array ) );
     return
$array;
     }
   else {
     return
false;
     }
   }
?>

This have a problem. if u unset the last value and then use
<?
array_unshift
( $array, array_shift ( $array ) );
?>

will return a :  Array ( [0] => )
so u can fix it using...

<?php
if (count($array) > 0) array_unshift ( $values, array_shift ( $values ) );           
?>

good luck ;)
15-Dec-2004 08: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 08:35
Quick way to get the extension from a file name using array_pop:

$ext = array_pop(explode(".",$filename));
30-Mar-2004 01: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 03: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 01: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 06: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 Chacn
28-Feb-2003 05: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: Tue, 15 Nov 2005