您好,登錄后才能下訂單哦!
如何掌握PHP數組元素的替換,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在之前的文章中我們有講到過在PHP中想要替換字符串可以通過str_replace
函數與substr_replace
()函數,字符串和數組都是PHP中非常重要的數據類型,那么我們應該怎樣才能夠做到替換數組中的元素呢?
在PHP中可以通過array_splice
函數、array_replace
函數和array_replace_recursive
函數來進行對數組中的元素進行替換,下面我們就分別來看一下這三種函數的使用方法。
array_splice
函數
在PHP中可以通過array_splice
函數將數組中的元素移除并且使用新的元素來取代它,array_splice
函數的基本語法格式如下:
array_splice(array,start,length,array)
其中需要注意的是:
第一個參數array
表示的就是我們需要進行操作的數組,參數start
是用來表示刪除元素的開始位置,參數length是用來規定被移除的元素個數,同時也是返回結果中數組的長度,第二個參數array
是用來規定帶有要插入原始數組中元素的數組。
參數start
是正數的時候,就表示從數組中該值指定的偏移量開始移除。如果該參數是負數的話,則表示從數組末端倒數該值指定的偏移量開始移除。如果是0
的話,那就是從第一個元素開始移除。
參數length
如果是正數的時候表示移除元素的數量,如果是負數表示的是移除從 start
到數組末端倒數 length
為止中間所有的元素。如果沒有設置該參數的值,則表示移除從 start 參數設置的位置開始直到數組末端的所有元素。
該函數的返回結果是由被提取出來的元素組成的數組。
下面我們通過示例來看一下array_splice
函數的應用,示例如下:
<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"purple","b"=>"orange"); array_splice($a1,0,2,$a2); print_r($a1); ?>
輸出結果:
上述示例中,便是通過array_splice
函數來對數組元素進行了替換,下面我們來看一下另外的兩種方法。
array_replace
函數
在PHP中可以通過array_replace
函數來使后面數組的值替換第一個數組的值,array_replace
函數的基本語法格式如下:
array_replace(array1,array2,array3...)
其中需要注意的是:
參數array1表示的是我們需要被替換的數組,參數array2表示的是指定要替換array1的值的數組,array3表示的是指定多個需要替換的數組,后面的數值會覆蓋前面的數值。返回的結果是被替換的數組,如果函數其中有錯誤的話,返回的結果就是NULL
。
下面我們通過示例來看一下array_replace函數的使用,示例如下:
<?php $a1=array("a"=>"red","b"=>"green"); $a2=array("a"=>"orange","burgundy"); print_r(array_replace($a1,$a2)); ?>
輸出結果:
上述示例中,一個鍵名不僅存在于第一個數組,也在第二個數組,這時候第一個數組中的值會被第二個數組中的值給替換掉,如果第一個數組中的鍵名是單獨的,別的數組中沒有這個鍵名,這時候這個鍵名和這個值機會保持不變。
這是一個鍵只存在于第一個數組中的情況,下面我們看一下一個鍵只存在于第二個或者后面的數組中,下面我們再看一個示例:
<?php $a1=array("a"=>"red","green"); $a2=array("a"=>"orange","b"=>"burgundy"); print_r(array_replace($a1,$a2)); ?>
輸出結果:
上述示例中能夠看出,當一個鍵不存在在第一個數組中,只存在于第二個數組中的時候,第一個數組中會重新創建一個這個鍵名和這個值,上述的示例都是兩組數組,下面我們來看一下三組數組的時候,
示例如下:
<?php $a1=array("red","green"); $a2=array("blue","yellow"); $a3=array("orange","burgundy"); print_r(array_replace($a1,$a2,$a3)); ?>
輸出結果:
上述示例中,出現了三個數組,這時候需要注意的是,后面數組的值會覆蓋前面數組的值。
這便是array_replace
函數的基本用法,下面我們繼續來看array_replace_recursive
函數的用法。
array_replace_recursive
函數
在PHP中可以通過array_replace_recursive
函數來遞歸的使用第二個數組的值來替換第二個數組的值。
array_replace_recursive
函數的基本語法格式如下:
array_replace_recursive(array1,array2,array3...)
其中需要注意的是:
參數array1表示的是我們需要被替換的數組,參數array2表示的是指定要替換array1的值的數組,array3表示的是指定多個需要替換的數組,后面的數值會覆蓋前面的數值。返回的結果是被替換的數組,如果函數其中有錯誤的話,返回的結果就是NULL
。
如果數組中沒有使用指定的鍵來規定數組中的元素,那么array_replace_recursive
函數就可以看成是array_replace
函數。
如果一個鍵在第一個數組和第二個數組中都存在,這時候第二個數組的值會替換第一個數組的值,如果一個鍵只存在于第一個數組,那么這個值會保存,如果一個鍵只存在于第二個數組,這時候會在第一個數組創建一個一樣的元素。
下面我們通過示例來看一下array_replace_recursive
的使用,示例如下:
<?php $a1=array("a"=>array("red"),"b"=>array("green","blue")); $a2=array("a"=>array("yellow"),"b"=>array("black")); $a3=array("a"=>array("orange"),"b"=>array("burgundy")); print_r(array_replace_recursive($a1,$a2,$a3)); ?>
輸出結果:
上述示例中,多個數組后面的數值會覆蓋前面的數值。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。