array_pop

(PHP 4, PHP 5)

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

Описание

mixed array_pop ( array &$array )

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

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

Список параметров

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() - Добавляет один или несколько элементов в начало массива

Коментарии

Автор:
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 $i $indice $i++)
        {
           
$dummy $array[$i];
           
$array[$i] = $temp;
           
$temp $dummy;
        }
    }
    return 
$array;
}
?>
2003-02-28 19:16:40
http://php5.kiev.ua/manual/ru/function.array-pop.html
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.
2003-06-08 09:10:26
http://php5.kiev.ua/manual/ru/function.array-pop.html
Автор:
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 $arrayarray_shift $array ) );
      return 
$array;
      }
   else {
      return 
false;
      }
   }
?>
2004-03-30 16:55:04
http://php5.kiev.ua/manual/ru/function.array-pop.html
Quick way to get the extension from a file name using array_pop:

$ext = array_pop(explode(".",$filename));
2004-11-25 10:35:31
http://php5.kiev.ua/manual/ru/function.array-pop.html
Автор:
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.
2004-12-15 10:29:59
http://php5.kiev.ua/manual/ru/function.array-pop.html
In a previous example ...
<?php
function array_trim $array$index ) {
   if ( 
is_array $array ) ) {
     unset ( 
$array[$index] );
     
array_unshift $arrayarray_shift $array ) );
     return 
$array;
     }
   else {
     return 
false;
     }
   }
?>

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

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

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

good luck ;)
2005-06-07 17:03:58
http://php5.kiev.ua/manual/ru/function.array-pop.html
I had a problem when using this function because my array was made up entirley of numbers, so I have made my own function.  Hopefully it will be useful to somebody.

function array_trim_end($array){

$num=count($array);
$num=$num-1;
unset($array[$num]);

return $array;
}
2007-10-31 06:37:25
http://php5.kiev.ua/manual/ru/function.array-pop.html
Автор:
Hi,

Here is a simple function which delete one element from the array (with value):
<?php
/*
* This function deletes the given element from a one-dimension array
* Parameters: $array:    the array (in/out)
*             $deleteIt: the value which we would like to delete
*             $useOldKeys: if it is false then the function will re-index the array (from 0, 1, ...)
*                          if it is true: the function will keep the old keys
* Returns true, if this value was in the array, otherwise false (in this case the array is same as before)
*/
function deleteFromArray(&$array$deleteIt$useOldKeys FALSE)
{
   
$tmpArray = array();
   
$found FALSE;
    foreach(
$array as $key => $value)
    {
        if(
$value !== $deleteIt)
        {
            if(
FALSE === $useOldKeys)
            {
               
$tmpArray[] = $value;
            }
            else
            {
               
$tmpArray[$key] = $value;
            }
        }
        else
        {
           
$found TRUE;
        }
    }
   
   
$array $tmpArray;
   
    return 
$found;
}
?>

Maybe it will help somebody...
2008-01-10 09:05:27
http://php5.kiev.ua/manual/ru/function.array-pop.html
@smp_info 
I think you are still tired. What would be wrong with:

<?php
$array 
= array('one''two''three''four');

//pop the last element off
array_pop($array);

//$array == array('one', 'two', 'three'); 
?>

As the documentation clearly notes, array_pop() not only returns the last element, but actually removes it from the array wich is passed by reference. Calling array_diff is a waste of resources.
2008-02-05 03:15:53
http://php5.kiev.ua/manual/ru/function.array-pop.html
I wrote a simple function to perform an intersect on multiple (unlimited) arrays.

Pass an array containing all the arrays you want to compare, along with what key to match by.

<?php
function multipleArrayIntersect($arrayOfArrays$matchKey)
{
   
$compareArray array_pop($arrayOfArrays);
   
    foreach(
$compareArray AS $key => $valueArray){
        foreach(
$arrayOfArrays AS $subArray => $contents){
            if (!
in_array($compareArray[$key][$matchKey], $contents)){
                unset(
$compareArray[$key]);
            }
        }
    }

    return 
$compareArray;
}
?>
2008-10-23 15:13:12
http://php5.kiev.ua/manual/ru/function.array-pop.html
Автор:
Beware that array_pop() returns a copy of the element (even if the array element is a reference). That means you will get different results on PHP 4 and 5 when dealing with objects.

<?php
$a 
= new stdClass();
$a->foo 'bar';

$arr = array(&$a);
$b array_pop($arr);

$b->foo 'baz';

var_dump($a);
?>

Output of PHP 5.2.8:
object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "baz"
}

Output of PHP 4.4.9:
object(stdClass)(1) {
  ["foo"]=>
  string(3) "bar"
}

For more information please refer to:
http://br2.php.net/manual/en/language.oop5.references.php
2009-02-04 11:18:34
http://php5.kiev.ua/manual/ru/function.array-pop.html
Автор:
For the sake of array_unshift()
:)

<?php
function array_unpop(&$arr) {
   
$args func_get_args(); unset($args[0]);
   
$tarr = array();
    foreach (
$args as $arg) {
       
$tarr[] = $arg;
    }
   
$arr array_merge($arr$tarr);
}

$queue = array("orange""banana");
array_unpop($queue"apple""raspberry");
print_r($queue);
?>

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)
2012-03-07 13:26:08
http://php5.kiev.ua/manual/ru/function.array-pop.html
Notice:
the complexity of array_pop() is O(1). 
the complexity of array_shift() is O(n).
array_shift() requires a re-index process on the array, so it has to run over all the elements and index them.
2013-08-10 21:45:44
http://php5.kiev.ua/manual/ru/function.array-pop.html
Автор:
Strict Standards will be thrown out if you put exploded array in array_pop:
<?php
$a 
array_pop(explode(",""a,b,c"));
echo 
$a;
?>

You will see:
PHP Strict Standards:  Only variables should be passed by reference in - on line 2

Strict Standards: Only variables should be passed by reference in - on line 2
c

Notice that, you should assign a variable for function explode, then pass the variable reference into array_pop to avoid the Strict Standard warning.
2014-02-28 10:21:45
http://php5.kiev.ua/manual/ru/function.array-pop.html
Автор:
Let's "do stuff" with array_pop()

<?php

$dependecyInjection 
= ['globalState' => 'isHorrible'];

$workQueue array_reverse($workQueue); // O(n)
// While we have stuff to do..... = [[ {function}, $params.... ], [], []...]
while (!empty($workQueue)) {

 
// O(1) : And resize array. (maybe also memory size ?)
 
$work array_pop($workQueue);

 
// If not `muted`, invoke the worker function....
 
if (isset($work[0])) {
   
$processor array_shift($work);
    if (
$moreWork $processor->__invoke($work$dependecyInjection)) { // <== Do stuff.
      // O(n) : add new stuff to the END of array ! (FIFO)
     
$outputCommands += array_reverse($moreWork);
    }
  }
}
2015-11-06 18:02:39
http://php5.kiev.ua/manual/ru/function.array-pop.html

    Поддержать сайт на родительском проекте КГБ