PHP 陣列指定位置 鍵插入元素

2021-10-25 17:45:53 字數 3510 閱讀 4898

array_flip — 交換陣列中的鍵和值

array_slice — 從陣列中取出一段

/**

* @param $input [需要修改的陣列]

* @param $offset [插入的起始位置或鍵名後]

* @param $length [插入的長度或鍵名前]

* @param $replacement [需要插入的元素(array、string....)]

* @return array

*/public

function

array_splice_assoc(&

$input

,$offset

,$length=0

,$replacement

=array()

)if(isset

($input

[$length])

&&is_string

($length))

// 先取出新增位置之前的元素與要新增的元素合併,再取新增位置之後的元素再合併

$result

=array_slice

($input,0

,$offset

,true)+

$replacement

+array_slice

($input

,$offset

+$length

,null

,true);

return

$result

;}

//例1

$input=[

'a'=

>1,

'b'=

>2,

'c'=

>3,

'd'=

>4,

'e'=

>

'5']

;$replacement=[

'x'=

>

999]

;$offset

='b'

;$length=0

;$result=[

'a'=

>1,

'b'=

>2,

'x'=

>

999,

'c'=

>3,

'd'=

>4,

'e'=

>

'5']

//例2

$input=[

'a'=

>1,

'b'=

>2,

'c'=

>3,

'd'=

>4,

'e'=

>

'5']

;$replacement=[

'x'=

>

999]

;$offset

='b'

;$length=1

;$result=[

'a'=

>1,

'x'=

>

999,

'c'=

>3,

'd'=

>4,

'e'=

>

'5']

在php中可以使用array_merge 函式和兩個陣列相加array+array的方式進行陣列合併,但兩者效果並不相同,區別:

當下標為數值時,array_merge()不會覆蓋掉原來的值,但arraya+arrayb合併陣列則會把最先值arraya的值作為最終結果返回,而把arrayb陣列擁有相同鍵名的那些值「拋棄」掉,而不是覆蓋

// 下標相同 array_merge()

$input=[

0=>1,

1=>2,

2=>3,

3=>4,

4=>5]

;$replacement=[

4=>

999]

;$result

=array_merge

($input

,$replacement);

$result=[

0=>1,

1=>2,

2=>3,

3=>4,

4=>5,

5=>

999];;

// 下標相同 array+array

$input=[

0=>1,

1=>2,

2=>3,

3=>4,

4=>5]

;$replacement=[

4=>

999]

;$result

=$input

+$replacement

;$result=[

0=>1,

1=>2,

2=>3,

3=>4,

4=>5]

;;

當下標為字元時,arraya+arrayb 仍然把最先出現的值作為最終結果返回,而把後面的陣列擁有相同鍵名的那些值「拋棄」掉,但array_merge()此時會覆蓋掉前面相同鍵名的值

// 下標相同 array_merge()

$input=[

'a'=

>1,

'b'=

>2,

'c'=

>3,

'd'=

>4,

'e'=

>

'5']

;$replacement=[

'e'=

>

999]

;$result

=array_merge

($input

,$replacement);

$result=[

'a'=

>1,

'b'=

>2,

'c'=

>3,

'd'=

>4,

'e'=

>

999]

;// 下標相同 array+array

$input=[

'a'=

>1,

'b'=

>2,

'c'=

>3,

'd'=

>4,

'e'=

>

'5']

;$replacement=[

'e'=

>

999]

;$result

=$input

+$replacement

;$result=[

'a'=

>1,

'b'=

>2,

'c'=

>3,

'd'=

>4,

'e'=

>

'5']

;

PHP陣列指定位置插入單元

rows array array name qq2010 array name qq2009 array name 迅雷5 array name 飛信2010 array name kugoo2010 array name ttplayer array name firefox4.0 array n...

php刪除指定位置陣列元素

arr a b c array splice arr,0,1 var dump arr brr a b c array shift brr var dump brr 結果如下 array size 2 0 string b length 1 1 string c length 1 array siz...

php 在array指定位置插入元素

insert the element to the array at the specified position param array param element param position private function array insert array,element,positio...