php如何替换(拼音:huàn)数组值

2025-02-25 15:13:21Biological-SciencesScience

PHP获取数组最后一个值,不改变原数组,应该怎么做?引言我们对于 PHP 的数组操作乐此不疲,为什么?因为 PHP 编程你几乎时时刻刻都在于数组打交道,对于数组的操作熟练程度,很大一部分因素关系着代码的优劣

PHP获取数组最后一个值,不改变原数组,应该怎么做?

引言

我们对于 PHP 的数组操作乐此不疲,为什么?因为 PHP 编程你几乎时时刻刻都在于数组打交道,对于数组的操作熟练程度,很大一部分因素关系着代码的优劣。

直播吧

今天我们来说说,如何获取数组的最后一个元素,并且不删除它。

不要小看这个(繁体:個)需求,没准儿你还做不对呢 :)

学习时间

如果你首先想到了 array_pop,那很不幸,这个函数可以获取最后一个元素,却把数组更改了。

开云体育

array_pop 弹出并返回 array 数组的最后一个单(繁:單)元,并将(繁体:將)数组 array 的长度减一。如果 array 为空(或者不是【拼音:shì】数组)将返回 NULL。 此外如果被调用不是一个数则会产生一个 Warning。

这显然不是我们(澳门新葡京拼音:men)要的结果。

亚博体育

其实实现一个需求的{pinyin:de}方法是多种多样的,我们尝试使用【读:yòng】 10 种不同的办法(fǎ),来做到这一点。

$x = array_values(array_slice($array, -1))[0]

第一种,使用 array_slice 截取数组 $array 倒数第一个元素。返[练:fǎn]回的是一个数组。然后使用 array_values 重新编【繁体:編】排索引[拼音:yǐn]值

因为数组只有一个元{pinyin:yuán}素,那么索引值必然是 0。原数组 $array 毫发无损。

$x = array_slice($array, -1)[0]

第二种方法没有考虑关联(繁:聯)数组的情况,有可能索引 0 不存在。所以容错性不好hǎo 。

$x = array_pop((array_slice($array, -1)))

第三种方法,终于用到了 array_pop。不《bù》过是在 array_slice 阶段的数组上使用。

$x = array_pop((array_slice($array, -1, 1)))

第四种方法,简直是有魔性了,比bǐ 第三种办{练:bàn}法相比,只是在 array_slice 截断的长度手动指定为 1。

澳门新葡京

第五种方法,用到数组指针了。end 返回最后一个元素。然后需要手动恢复指针位置到头部,所以调用了一次 reset 函数《繁体:數》。本方法(fǎ)有可能返回(繁:迴)关联数组,而不能拿到值。

$x = end((array_values($array)))

澳门金沙

第六种方法,严格地为了返回最后一(练澳门伦敦人:yī)个元素的值,使用 array_values 进行了索引重新编排。

$x = $array[count($array)-1]

第七种方法,直接使用索引了。肯定是假设数组都是默认递增索引的数组,所以 count 获澳门新葡京取的长度才有效(pinyin:xiào)。该方法容错性差。

澳门巴黎人

第八种方fāng 法,是对第七种的不足的修复。

$x = $array[] = array_pop($array)

第九种方法,我们需要明白,使用连等复制,array_pop 弹出数组的最后一个元素后,同《繁体:衕》时赋值给 $x。这没问题。赋值给原数{pinyin:shù}组 $array[],这会对关联数组重新排{练:pái}定索引,所以有副作用。

$x = $array[array_key_last($array)]

第十种,这种方法的{练:de}容错性也极高,因为使用了 array_key_last,有效地考虑了关联数组的情况,而且结果也很取巧。这个方法很棒。但是只有 PHP 7.3 以上的【拼音:de】版本才有。

写在最后

好了,大家好好消化一下上面10个方法的优劣,取长补短,深度学习吧。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎{练:yíng}关注。

本文链接:http://10.21taiyang.com/Biological-SciencesScience/20784156.html
php如何替换(拼音:huàn)数组值转载请注明出处来源