2016-05-23 47 views
1

我有點初學者到PHP,並與陣列亂搞了一下。PHP數組。檢查2個PHP數組的值,並結合這兩種

是否有任何方式來檢查2個數組的值,並且將二者結合起來(刪除重複和這樣)。我知道這是不清楚,所以我將提供一個例子:

$arrayOne = array("102", "103", "104", "105", "106"); 
$arrayTwo = array("101", "102", "103", "105", "106", "107"); 

注意$ arrayOne沒有「101」和「107」和$ arrayTwo沒有「104」

我想那麼什麼完成之後,將兩個數組(如$ array3)組合起來。當我運行的print_r($ ARRAY3)我應該得到這樣的輸出:

Array([0] => 102, [1] => 103, [2] => 105, [3] => 106) 

我們所已經做的是:「101」和「107」已經從$ arrayOne刪除和「104」已移出$ arrayTwo,因爲這些值對於兩個數組都不是共同的。此外,所有重複的值已被刪除以及

+1

試陣相交。 –

回答

2

array_intersect所做的工作。

$arrayOne = array("102", "103", "104", "105", "106"); 
$arrayTwo = array("101", "102", "103", "105", "106", "107"); 

$result=array_intersect($arrayOne, $arrayTwo); 
print_r($result); //Array ([0] => 102 [1] => 103 [3] => 105 [4] => 106) 

如果你需要新的索引像你想不是試圖array_values

print_r(array_values($result)); // Array ([0] => 102 [1] => 103 [2] => 105 [3] => 106) 
+0

,它的工作。非常感謝您的幫助和快速回答。希望這不是一個愚蠢的問題..仍在學習的繩索 – user3536523

+0

我不得不等待11分鐘接受你的答案,顯然 – user3536523

1

使用此代碼

$arrayOne = array("102", "103", "104", "105", "106"); 
$arrayTwo = array("101", "102", "103", "105", "106", "107"); 

$arrayThree = array(); 
foreach($arrayOne as $k => $v) 
{ 
if(in_array($v, $arrayTwo)){ 
    $arrayThree[] = $v; 
} 
} 

print_r($arrayThree);die;