2014-07-02 20 views
0

這是做什麼的最好方法。你有2個陣列輸入,讓我們說:在數組中選擇不同的常見值 - php函數

$current = array('strawberry', 'apple', 'banana', 'peach'); 
$new = array('apple', 'blackberry', 'mango', 'banana'); 

現在寫一個類/函數,返回兩個數組,如:

$add = array('blackberry', 'mango'); 
$del = array('strawberry', 'peach'); 

什麼是最好的方式/最有效的方式來寫函數/類執行該任務?

我想是這樣的:

function replaceTags($new, $current) { 
    $tmp = array_intersect($new, $current); 
    $add = array_diff($new, $tmp); 
    $del = array_diff($current, $tmp); 

    return array($add, $del); 
} 

林如果PHP內置函數最適合這個任務不知道? 任何建議將不勝感激;)

+0

你alloting任務的計算器的人呢? (即)沒有嘗試任何東西? –

回答

0

array_diff($ array1,$ array2)返回$ array1中不在$ array2中的值。

因此,你可以讓已經使用添加值:

$add = array_diff($new, $current) 

和使用刪除的值:

$del = array_diff($current, $new)