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