PHP中的陣列合併

2021-08-14 20:20:54 字數 737 閱讀 4330

偶然在工作中遇到的乙個問題,php如何快速,高效的合併兩個有序陣列(鍵名為從0開始的連續整數,比如[1,2,3]),要求合併後的陣列有序且鍵名為從0開始的連續整數(這樣*json_encode*之後才不會帶上鍵名)
先array_merge,array_merge對於數字鍵名的陣列會將重複值附加到後面

在array_unique,此時陣列內的值唯一,但是鍵名依然不連續

使用sort函式將陣列排序並重新索引。

這樣雖然能達到目標,但是做了多餘的操作,本來兩個陣列就是有序的。

可以逐個按序比較值,將較小值push到乙個新陣列中,重複值只取一次

$a = [1,2,3,4,5,9];

$b = [2,3,4,7,8,9,10];

$c = array();

$min_l = count($a) < count($b) ? count($a) : count($b);

for($i=$j=0;$i

<$min_l && $j

<$min_l;)elseif($a[$i]>$b[$j])else

}while($i

$a))

while($j

$b))

var_dump($c);

現在看來這個問題挺好解決的啊,不過前一種方法**量少,看起來簡潔且更好理解。畢竟都用php這指令碼語言了,效率肯定不是放在第一位的,快速開發才是最重要的。

php陣列合併

php的陣列在這門語言裡使用得非常多。陣列的一些常見操作像split explode,join implode,排序 sort,asort,ksort,arsort 兩陣列合併 array combine 鍵值翻轉 array flip 當然還有比較複雜的陣列合併。陣列合併至少有4種形式。1.第一種...

PHP陣列 陣列合併

陣列合併函式 array merge或者 array merge 將乙個或多個陣列的單元合併起來,乙個陣列中的值附加在前乙個陣列的後面。返回作為結果的陣列。如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆蓋前乙個值。然而,如果陣列包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。如果只...

關於陣列合併,php

array merge 合併兩個陣列,如果陣列的鍵名是字元,而且兩個陣列的鍵名是相同的字元,如 array3 array 性別 男 姓名 不是女人 array4 array 性別 不知道 長相 很帥 哪麼,合併之後,後者將會覆蓋前者,這樣合併之後就變成了 array 性別 不知道 姓名 不是女人 長...