注:盡量不要在循環中操作數據庫。
array_merge():一個神奇的方法
1.兩個一維數組合並成一個一維數組
$a = array('morning','afternoon','night');
$b = array('breakfast','lunch','dinner');
(1)以$a中的數組元素為鍵名,以$b中的數組元素為鍵值而形成的一個新數組。
$c = array_combine($a,$b);

(2)將$a中與$b中鍵值相同的數組元素剔除,僅保留$a中不同的數組元素。也就是說返回差集。
$c=array_diff($a,$b);
![]()
(3)將$a中與$b中鍵名和鍵值同時相同的數組元素剔除,僅保留$a中不同的數組元素,也就是說返回差集數組。
$a = array('morning','afternoon','night');
$b = array('breakfast','lunch','night');
$c=array_diff_assoc($a,$b);
print_r($c);
輸出結果為:
![]()
(4)將$a中與$b中鍵名相同的數組元素剔除,僅保留$a中不同的數組元素,也就是說返回差集數組。
$c=array_diff_key($a,$b);
空數組。
(5)將$a中與$b中鍵名和鍵值同時相同的數組元素剔除,僅保留$a中不同的數組元素,也就是說返回差集數組,然后使用用戶自定義函數比較此差集數組中的鍵名,對數組重新排序。
(6)將$a中與$b中鍵名相同的數組元素剔除,僅保留$a中不同的數組元素,也就是說返回差集數組,然后使用用戶自定義函數比較此差集數組中的鍵名,對數組重新排序。
$a = array('morning','afternoon','night','today','yesterday','tomorrow');
$b = array('breakfast','lunch','night');
$c=array_diff_ukey($a,$b,function($a,$b){
if($a==$b)
return 0;
return ($a>$b)?-1:1;
});
print_r($c);

(7)將$a中與$b中鍵值相同的數組元素返回,鍵名為$a中對應的數組鍵名。(或者是更多數組,返回的是共有的交集)
$a = array('morning','afternoon','today','night','yesterday','tomorrow');
$b = array('breakfast','lunch','night');
$c = array_intersect($a,$b);
print_r($c);

(8)將一個或多個數組合並為一個數組。
1.如果兩個或多個數組元素有相同的鍵名,則最后的元素會覆蓋其他元素。如果輸入的數組鍵名是整數,則該函數將返回帶有整數鍵名的新數組,其鍵名以0開始進行重新索引。
$a = array('sun'=>'陽光','moon'=>'月光');
$b = array('dog'=>'狗狗','cat'=>'小貓');
$c = array_merge($a,$b);
print_r($c);

$a = array('sun'=>'陽光','moon'=>'月光','守望'=>'麥田');
$b = array('dog'=>'狗狗','cat'=>'小貓','守望'=>'先鋒');
$c = array_merge($a,$b);
print_r($c);

2.array_merge_recursive() 不會進行鍵名覆蓋,而是將多個相同鍵名的值遞歸組成一個數組。
$a = array('sun'=>'陽光','moon'=>'月光','守望'=>'麥田');
$b = array('dog'=>'狗狗','cat'=>'小貓','守望'=>'先鋒');
$c = array_merge_recursive($a,$b);
print_r($c);

