亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

你只合并了,沒去重吧。bad.php合并去重了,good.php沒去重吶。沒用array_unique.

正在回答

4 回答

<?php
highlight_string(file_get_contents('index.php'));
$a?=?array(1,2,3,4,5,6,7,8,9);
$b?=?array(9,8,7,6,5,4,3,2,1);
print_r(array_merge($a,$b));
?>Array
(
????[0]?=>?1
????[1]?=>?2
????[2]?=>?3
????[3]?=>?4
????[4]?=>?5
????[5]?=>?6
????[6]?=>?7
????[7]?=>?8
????[8]?=>?9
????[9]?=>?9
????[10]?=>?8
????[11]?=>?7
????[12]?=>?6
????[13]?=>?5
????[14]?=>?4
????[15]?=>?3
????[16]?=>?2
????[17]?=>?1
)


0 回復 有任何疑惑可以回復我~

如果輸入的數組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。

0 回復 有任何疑惑可以回復我~

array_merge ?函數如果遇到重復的鍵都會后面的覆蓋前面的

如果真的是這樣,那么結果也是不對的,因為

1-》2 2-》4

1-》3 2-》5

這樣合并是錯誤的,想要的結果是

1->2 2->4 3->3 4->5




如果這兩個數組中有相同的數值鍵名:

<?php
?
?$book1 = array('linux服務器配置與管理','PHP程序設計');
?$book2 = array('服務器配置與管理','PHP');?
??
?$result = array_merge($book1,$book2);
?print_r($result);
?>

結果是:

Array ( [0] => linux服務器配置與管理 [1] => PHP程序設計 [2] => 服務器配置與管理 [3] => PHP )

?

這時,如果數組中包含相同的數字鍵名,則后面的不會覆蓋前面的值,而是后面的鍵值按順序依次增加,



所以做完合并操作之后應該要調用array_unique函數

0 回復 有任何疑惑可以回復我~

array_merge ?函數如果遇到重復的鍵都會后面的覆蓋前面的

2 回復 有任何疑惑可以回復我~
#1

javascript:

數字鍵名將會被重新編號,不會發生覆蓋,請注意這一點.
2014-10-17 回復 有任何疑惑可以回復我~
#2

洪爐百煉生

那是字符串鍵名
2014-11-10 回復 有任何疑惑可以回復我~
#3

dqmore

數字鍵不會阿,不過我想問array_merge處理數字鍵跟字符串鍵,性能一樣不,,
2014-11-27 回復 有任何疑惑可以回復我~
#4

擱淺ing

你說的對 php代碼用的是in_array()所以必須用array_unique
2015-08-20 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號