Ok,

我知道所有关于array_pop(),但它删除了最后一个元素。如何获得数组的最后一个元素而不删除它?

这里有一个奖励:

$array = array('a' => 'a', 'b' => 'b', 'c' => 'c');

甚至

$array = array('a', 'b', 'c', 'd');
unset($array[2]);
echo $array[sizeof($array) - 1]; // Output: PHP Notice:  Undefined offset:  2 in - on line 4

当前回答

$file_name_dm =  $_FILES["video"]["name"];    

                           $ext_thumb = extension($file_name_dm);

                            echo extension($file_name_dm); 
function extension($str){
    $str=implode("",explode("\\",$str));
    $str=explode(".",$str);
    $str=strtolower(end($str));
     return $str;
}

其他回答

试着结束:

$myLastElement = end($yourArray);

注意,这不仅返回传递数组的最后一个元素,它还修改了数组的内部指针,current、each、prev和next都使用了这个指针。

对于PHP >= 7.3.0:

如果使用的是PHP 7.3.0或更高版本,可以使用array_key_last,它返回数组的最后一个键,而不修改其内部指针。要得到最后一个值,你可以这样做:

$myLastElement = $yourArray[array_key_last($yourArray)];

在几乎每一种带有数组的语言中,使用A[A.size-1]都不会出错。我想不出一个基于1的数组(而不是基于0的数组)的语言例子。

我经常需要这个来处理堆栈,我总是发现自己困惑,没有本地函数在不以某种形式操作数组或其内部指针的情况下做到这一点。

因此,我通常携带一个util函数,它也可以安全地用于关联数组。

function array_last($array) {
    if (count($array) < 1)
        return null;

    $keys = array_keys($array);
    return $array[$keys[sizeof($keys) - 1]];
}

如何:

current(array_slice($array, -1))

适用于关联数组 当$array ==[](返回false)时生效 不会影响原始数组

End()将提供数组的最后一个元素

$array = array('a' => 'a', 'b' => 'b', 'c' => 'c');
echo end($array); //output: c

$array1 = array('a', 'b', 'c', 'd');
echo end($array1); //output: d