php刪除數(shù)組的某個元素 PHP如何實(shí)現(xiàn)刪除數(shù)組元素和重新索引?
PHP如何實(shí)現(xiàn)刪除數(shù)組元素和重新索引?如果要刪除數(shù)組中的元素,可以直接使用unset。lt?php $arr數(shù)組(a,b,c,d) unset($arrPHP如何實(shí)現(xiàn)刪除數(shù)組元素和重新索引?) pri
PHP如何實(shí)現(xiàn)刪除數(shù)組元素和重新索引?
如果要刪除數(shù)組中的元素,可以直接使用unset。
lt?php $arr數(shù)組(a,b,c,d) unset($arr
PHP如何實(shí)現(xiàn)刪除數(shù)組元素和重新索引?
) print_r($arr)?gt print _ r($arr)之后的結(jié)果不是這樣的,最后的結(jié)果是Array ([0] gt a
PHP獲取數(shù)組最后一個值,不改變原數(shù)組,應(yīng)該怎么做?
gt c : gt d)。那么,我們?nèi)绾未_保缺失的元素將被填充,數(shù)組將被重新索引呢?答案是
array_splice():
lt?php $arr array(a,b,c,d) array_splice($arr,1,1) print_r($arr)?大型旅行車的
After printing _ r ($ arr), the result is A()rray ([0] gt a
PHP如何實(shí)現(xiàn)刪除數(shù)組元素和重新索引?
gt cPHP獲取數(shù)組最后一個值,不改變原數(shù)組,應(yīng)該怎么做?
gt d).刪除數(shù)組中的指定元素
Array_search()比較實(shí)用。
array_search()函數(shù)在數(shù)組中查找鍵值,就像in_array()一樣。如果找到這個值,將返回匹配元素的鍵名。如果沒有找到,則返回false$array數(shù)組(1,2,3,4,5)$ del _ value 3 unset($ array[array _ search($ del _ value,$array)])//利用復(fù)原刪除這個元素print_r($array)輸出阿肯色州Ray (1, 2, 4, 5)
但是如果要重新索引數(shù)組,就需要用foreach遍歷被刪除的數(shù)組,然后重新構(gòu)建一個數(shù)組,也是可以的。
_shift函數(shù):將數(shù)組的第一個單元格移出并返回結(jié)果,數(shù)組長度減一,其他單元格前移一位。所有數(shù)字鍵將從零開始計數(shù),而文字鍵名稱不會改變。
_splice函數(shù):將數(shù)組中選中的元素移出,不保留原來的鍵名。
PHP獲取數(shù)組最后一個值,不改變原數(shù)組,應(yīng)該怎么做?
簡介我們喜歡PHP中的數(shù)組操作。為什么?因?yàn)樵赑HP編程中你幾乎每時每刻都在和數(shù)組打交道,所以很大一部分和數(shù)組操作熟練程度相關(guān)的因素是好是壞。
今天我們將討論如何在不刪除的情況下獲取數(shù)組的最后一個元素。
唐 不要低估這個需求,也許你可以。;I don'我做得不對
學(xué)習(xí)時間如果你首先想到的是array_pop,很遺憾,這個函數(shù)可以得到最后一個元素,但是它改變了數(shù)組。
Array_pop彈出并返回數(shù)組Array的最后一個單元格,數(shù)組array的長度減一。如果array為空(或者不是數(shù)組),它將返回NULL。另外,如果被叫不是一個號碼,就會產(chǎn)生一個War。Ning
這顯然不是我們想要的結(jié)果。
其實(shí)實(shí)現(xiàn)一個需求有很多種,我們嘗試用10種不同的來做到這一點(diǎn)。
$x array value (array slice ($array, -1))[0]
首先,使用array_slice截取數(shù)組$array的最后一個元素。返回一個數(shù)組。然后使用array_values重新排列索引值。因?yàn)閿?shù)組只有一個元素,所以索引值必須為0。原始數(shù)組$array毫發(fā)無損。
$x array_slice($array,-1)[0]
第二種方法不考慮關(guān)聯(lián)數(shù)組的情況,有可能索引0不存在。所以容錯性不好。
$ x array _ pop((array _ slice($ array,-1)))
第三種方法,最后用了array_pop。但它是在array_slice階段的數(shù)組上使用的。
$ x array _ pop((array _ slice($ array,-1,1)))
第四種方法簡直神奇。與第三種方法相比,它只是手動指定array_slice截斷的長度為1。
$x結(jié)束($數(shù)組)重置($array)
第五種方法使用數(shù)組指針。End返回最后一個元素。然后需要手動恢復(fù)指針位置到頭部,所以調(diào)用一次reset函數(shù)。此方法可能返回一個關(guān)聯(lián)數(shù)組,但它無法獲取值。
$x end ((array value ($ array)))
第六種方法,嚴(yán)格地說是為了返回最后一個元素的值,使用array_values重新排列索引。
$x $array[count($array)-1]
第七種方法是直接使用索引。必須假設(shè)所有數(shù)組都是默認(rèn)增量索引的數(shù)組,所以count得到的長度是有效的。這種方法容錯性差。
$ keys array _ keys($ array)$ x $ array[$ keys[count($ keys)-1]]
第八種方法是彌補(bǔ)第七種方法的不足。
$x $array[] array_pop($array)
第九種方法,我們要明白,用的是級聯(lián)復(fù)制,array_pop彈出數(shù)組的最后一個元素,同時賦給$x。那個 沒問題。給原始數(shù)組$array[]賦值會重新排列關(guān)聯(lián)數(shù)組的索引,所以有副作用。
$ x $ array[array _ key _ last($ array)]
第十,這個方法也是極其容錯的,因?yàn)槭褂昧薬rray_key_last,有效的考慮了關(guān)聯(lián)數(shù)組的情況,結(jié)果也很棘手。這個方法很棒。但是只有PHP 7.3以上的版本才有。
寫在最后。讓 總結(jié)以上10種方法的優(yōu)缺點(diǎn),互相學(xué)習(xí)。;的長處,并深入學(xué)習(xí)。
Happy coding :_)
我是@程序員 的助手,我繼續(xù)分享我的編程知識。歡迎關(guān)注。