溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何掌握PHP數(shù)組元素的替換

發(fā)布時(shí)間:2021-11-08 12:43:38 來(lái)源:億速云 閱讀:192 作者:柒染 欄目:編程語(yǔ)言

如何掌握PHP數(shù)組元素的替換,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

在之前的文章中我們有講到過(guò)在PHP中想要替換字符串可以通過(guò)str_replace 函數(shù)與substr_replace()函數(shù),字符串和數(shù)組都是PHP中非常重要的數(shù)據(jù)類型,那么我們應(yīng)該怎樣才能夠做到替換數(shù)組中的元素呢?

在PHP中可以通過(guò)array_splice函數(shù)、array_replace函數(shù)和array_replace_recursive函數(shù)來(lái)進(jìn)行對(duì)數(shù)組中的元素進(jìn)行替換,下面我們就分別來(lái)看一下這三種函數(shù)的使用方法。

array_splice函數(shù)

在PHP中可以通過(guò)array_splice函數(shù)將數(shù)組中的元素移除并且使用新的元素來(lái)取代它,array_splice函數(shù)的基本語(yǔ)法格式如下:

array_splice(array,start,length,array)

其中需要注意的是:

第一個(gè)參數(shù)array表示的就是我們需要進(jìn)行操作的數(shù)組,參數(shù)start是用來(lái)表示刪除元素的開始位置,參數(shù)length是用來(lái)規(guī)定被移除的元素個(gè)數(shù),同時(shí)也是返回結(jié)果中數(shù)組的長(zhǎng)度,第二個(gè)參數(shù)array是用來(lái)規(guī)定帶有要插入原始數(shù)組中元素的數(shù)組。

參數(shù)start是正數(shù)的時(shí)候,就表示從數(shù)組中該值指定的偏移量開始移除。如果該參數(shù)是負(fù)數(shù)的話,則表示從數(shù)組末端倒數(shù)該值指定的偏移量開始移除。如果是0的話,那就是從第一個(gè)元素開始移除。

參數(shù)length如果是正數(shù)的時(shí)候表示移除元素的數(shù)量,如果是負(fù)數(shù)表示的是移除從 start 到數(shù)組末端倒數(shù) length 為止中間所有的元素。如果沒有設(shè)置該參數(shù)的值,則表示移除從 start 參數(shù)設(shè)置的位置開始直到數(shù)組末端的所有元素。

該函數(shù)的返回結(jié)果是由被提取出來(lái)的元素組成的數(shù)組。

下面我們通過(guò)示例來(lái)看一下array_splice函數(shù)的應(yīng)用,示例如下:

<?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);
?>

輸出結(jié)果:

如何掌握PHP數(shù)組元素的替換

上述示例中,便是通過(guò)array_splice函數(shù)來(lái)對(duì)數(shù)組元素進(jìn)行了替換,下面我們來(lái)看一下另外的兩種方法。

array_replace函數(shù)

在PHP中可以通過(guò)array_replace函數(shù)來(lái)使后面數(shù)組的值替換第一個(gè)數(shù)組的值,array_replace函數(shù)的基本語(yǔ)法格式如下:

array_replace(array1,array2,array3...)

其中需要注意的是:

參數(shù)array1表示的是我們需要被替換的數(shù)組,參數(shù)array2表示的是指定要替換array1的值的數(shù)組,array3表示的是指定多個(gè)需要替換的數(shù)組,后面的數(shù)值會(huì)覆蓋前面的數(shù)值。返回的結(jié)果是被替換的數(shù)組,如果函數(shù)其中有錯(cuò)誤的話,返回的結(jié)果就是NULL。

下面我們通過(guò)示例來(lái)看一下array_replace函數(shù)的使用,示例如下:

<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("a"=>"orange","burgundy");
print_r(array_replace($a1,$a2));
?>

輸出結(jié)果:

如何掌握PHP數(shù)組元素的替換

上述示例中,一個(gè)鍵名不僅存在于第一個(gè)數(shù)組,也在第二個(gè)數(shù)組,這時(shí)候第一個(gè)數(shù)組中的值會(huì)被第二個(gè)數(shù)組中的值給替換掉,如果第一個(gè)數(shù)組中的鍵名是單獨(dú)的,別的數(shù)組中沒有這個(gè)鍵名,這時(shí)候這個(gè)鍵名和這個(gè)值機(jī)會(huì)保持不變。

這是一個(gè)鍵只存在于第一個(gè)數(shù)組中的情況,下面我們看一下一個(gè)鍵只存在于第二個(gè)或者后面的數(shù)組中,下面我們?cè)倏匆粋€(gè)示例:

<?php
$a1=array("a"=>"red","green");
$a2=array("a"=>"orange","b"=>"burgundy");
print_r(array_replace($a1,$a2));
?>

輸出結(jié)果:

如何掌握PHP數(shù)組元素的替換

上述示例中能夠看出,當(dāng)一個(gè)鍵不存在在第一個(gè)數(shù)組中,只存在于第二個(gè)數(shù)組中的時(shí)候,第一個(gè)數(shù)組中會(huì)重新創(chuàng)建一個(gè)這個(gè)鍵名和這個(gè)值,上述的示例都是兩組數(shù)組,下面我們來(lái)看一下三組數(shù)組的時(shí)候,

示例如下:

<?php
$a1=array("red","green");
$a2=array("blue","yellow");
$a3=array("orange","burgundy");
print_r(array_replace($a1,$a2,$a3));
?>

輸出結(jié)果:

如何掌握PHP數(shù)組元素的替換

上述示例中,出現(xiàn)了三個(gè)數(shù)組,這時(shí)候需要注意的是,后面數(shù)組的值會(huì)覆蓋前面數(shù)組的值。

這便是array_replace函數(shù)的基本用法,下面我們繼續(xù)來(lái)看array_replace_recursive函數(shù)的用法。

array_replace_recursive函數(shù)

在PHP中可以通過(guò)array_replace_recursive函數(shù)來(lái)遞歸的使用第二個(gè)數(shù)組的值來(lái)替換第二個(gè)數(shù)組的值。

array_replace_recursive函數(shù)的基本語(yǔ)法格式如下:

array_replace_recursive(array1,array2,array3...)

其中需要注意的是:

參數(shù)array1表示的是我們需要被替換的數(shù)組,參數(shù)array2表示的是指定要替換array1的值的數(shù)組,array3表示的是指定多個(gè)需要替換的數(shù)組,后面的數(shù)值會(huì)覆蓋前面的數(shù)值。返回的結(jié)果是被替換的數(shù)組,如果函數(shù)其中有錯(cuò)誤的話,返回的結(jié)果就是NULL。

如果數(shù)組中沒有使用指定的鍵來(lái)規(guī)定數(shù)組中的元素,那么array_replace_recursive函數(shù)就可以看成是array_replace函數(shù)。

如果一個(gè)鍵在第一個(gè)數(shù)組和第二個(gè)數(shù)組中都存在,這時(shí)候第二個(gè)數(shù)組的值會(huì)替換第一個(gè)數(shù)組的值,如果一個(gè)鍵只存在于第一個(gè)數(shù)組,那么這個(gè)值會(huì)保存,如果一個(gè)鍵只存在于第二個(gè)數(shù)組,這時(shí)候會(huì)在第一個(gè)數(shù)組創(chuàng)建一個(gè)一樣的元素。

下面我們通過(guò)示例來(lái)看一下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));
?>

輸出結(jié)果:

如何掌握PHP數(shù)組元素的替換

上述示例中,多個(gè)數(shù)組后面的數(shù)值會(huì)覆蓋前面的數(shù)值。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI