數組常用方法返回值和改變原數組 Excel VBA自定義函數怎么返回一個數組?
Excel VBA自定義函數怎么返回一個數組?VBA函數可以返回數組,例子代碼:執(zhí)行效果: 數組交換位置方法?數組交換位置的方法;1,引入第三個變置;Var,arr=(‘One',tw0,);Var,
Excel VBA自定義函數怎么返回一個數組?
VBA函數可以返回數組,例子代碼:執(zhí)行效果:
數組交換位置方法?
數組交換位置的方法;
1,引入第三個變置;Var,arr=(‘One',tw0,);
Var,item=arr(O);
arr(0)=arr(1);
arr(1)=item;
2,SPlice方法,spⅠiCe()方直接對數組進行修改,SpⅠiC
PHP獲取數組最后一個值,不改變原數組,應該怎么做?
引言我們對于 PHP 的數組操作樂此不疲,為什么?因為 PHP 編程你幾乎時時刻刻都在于數組打交道,對于數組的操作熟練程度,很大一部分因素關系著代碼的優(yōu)劣。
今天我們來說說,如何獲取數組的最后一個元素,并且不刪除它。
不要小看這個需求,沒準兒你還做不對呢 :)
學習時間如果你首先想到了 array_pop,那很不幸,這個函數可以獲取最后一個元素,卻把數組更改了。
array_pop 彈出并返回 array 數組的最后一個單元,并將數組 array 的長度減一。如果 array 為空(或者不是數組)將返回 NULL。 此外如果被調用不是一個數則會產生一個 Warning。
這顯然不是我們要的結果。
其實實現(xiàn)一個需求的方法是多種多樣的,我們嘗試使用 10 種不同的辦法,來做到這一點。
$x array_values(array_slice($array, -1))[0]
第一種,使用 array_slice 截取數組 $array 倒數第一個元素。返回的是一個數組。然后使用 array_values 重新編排索引值。因為數組只有一個元素,那么索引值必然是 0。原數組 $array 毫發(fā)無損。
$x array_slice($array, -1)[0]
第二種方法沒有考慮關聯(lián)數組的情況,有可能索引 0 不存在。所以容錯性不好。
$x array_pop((array_slice($array, -1)))
第三種方法,終于用到了 array_pop。不過是在 array_slice 階段的數組上使用。
$x array_pop((array_slice($array, -1, 1)))
第四種方法,簡直是有魔性了,比第三種辦法相比,只是在 array_slice 截斷的長度手動指定為 1。
$x end($array) reset($array)
第五種方法,用到數組指針了。end 返回最后一個元素。然后需要手動恢復指針位置到頭部,所以調用了一次 reset 函數。本方法有可能返回關聯(lián)數組,而不能拿到值。
$x end((array_values($array)))
第六種方法,嚴格地為了返回最后一個元素的值,使用 array_values 進行了索引重新編排。
$x $array[count($array)-1]
第七種方法,直接使用索引了??隙ㄊ羌僭O數組都是默認遞增索引的數組,所以 count 獲取的長度才有效。該方法容錯性差。
$keys array_keys($array) $x $array[$keys[count($keys)-1]]
第八種方法,是對第七種的不足的修復。
$x $array[] array_pop($array)
第九種方法,我們需要明白,使用連等復制,array_pop 彈出數組的最后一個元素后,同時賦值給 $x。這沒問題。賦值給原數組 $array[],這會對關聯(lián)數組重新排定索引,所以有副作用。
$x $array[array_key_last($array)]
第十種,這種方法的容錯性也極高,因為使用了 array_key_last,有效地考慮了關聯(lián)數組的情況,而且結果也很取巧。這個方法很棒。但是只有 PHP 7.3 以上的版本才有。
寫在最后好了,大家好好消化一下上面10個方法的優(yōu)劣,取長補短,深度學習吧。
Happy coding :_)
我是 @程序員小助手 ,持續(xù)分享編程知識,歡迎關注。