PHP中數(shù)據(jù)類型array和object有什么區(qū)別?
您可以參考php幫助手冊(cè)來了解具體的概念差異。我說一下我個(gè)人的理解:一般來說,數(shù)組是數(shù)組,對(duì)象是對(duì)象。兩者有很大的區(qū)別。主要區(qū)別是我認(rèn)為對(duì)象一般定義行為進(jìn)行封裝,而數(shù)組主要定義數(shù)據(jù)結(jié)構(gòu)。但是兩者的區(qū)別在php語言中是模糊的,因?yàn)閜hp支持普通的數(shù)據(jù)類型,所以array可以是object,反之亦然。
PHP如何實(shí)現(xiàn)刪除數(shù)組元素和重新索引?
如果要?jiǎng)h除數(shù)組中的元素,可以直接使用unset。
lt?php$arr數(shù)組(a,b,c,d)unset($arr[1])print_r($arr)?gtprint_r($arr)
之后的結(jié)果不是這樣的,最后的結(jié)果是Array([0]gta[2]gtc[3]gtd)。
那么,我們?nèi)绾未_保缺失的元素將被填充,數(shù)組將被重新索引呢?答案是
array_splic:
lt?php$arrarray(a,b,c,d)array_splice($arr,1,1)print_r($arr)?大型旅行車的
print_r($arr)后,結(jié)果是A()rray([0]gta[1]gtc[2]gtd)。
刪除數(shù)組中的指定元素
Array_search()比較實(shí)用。
array_search()函數(shù)在數(shù)組中查找鍵值,就像in_array()一樣。如果找到這個(gè)值,將返回匹配元素的鍵名。如果沒有找到,返回false$arrayarray(1,2,3,4,5)$del_value3unset($array[array_search($del_value,$array)]//使用unset刪除這個(gè)元素print_r($array)并輸出array(1,2,4,5)。
但是如果要重新索引數(shù)組,就需要用foreach遍歷被刪除的數(shù)組,然后重新構(gòu)建一個(gè)數(shù)組,也是可以的。
_shift函數(shù):將數(shù)組的第一個(gè)單元格移出并返回結(jié)果,數(shù)組長(zhǎng)度減一,其他單元格前移一位。所有數(shù)字鍵將從零開始計(jì)數(shù),而文字鍵名稱不會(huì)改變。
_splice函數(shù):將數(shù)組中選中的元素移出,不保留原來的鍵名。