2017-04-06 67 views
0

擁有 $ age = array(「Peter」=>「35」,「Ben」=>「37」,「Joe」=>「43」); $ age2 = array(「Peter」=>「Peter」,「Ben」=>「Ben」);PHP數組差異

我想要一個輸出: $ age = array(「Peter」=>「35」,「Ben」=>「37」); //沒有Joe並且索引相同

+0

我不明白你想做什麼,但$ age2數組並不真的看起來好,有用嗎?如果你只是想從數組中刪除喬使用[unset()](http://php.net/manual/en/function.unset.php) – FrenchMajesty

+0

刪除喬是基於它不存在$ age2數組中,試圖簡化它,但實際的數據更復雜。 – user1143217

回答

0

因此,您想比較$ age1和$ age2,並從$ age1中刪除任何不在$ age2中的條目?使用array_diff_key()像這樣:

$missingElements = array_diff_key($age2, $age1); 

foreach($missingElements as $element) { // For each element NOT in both arrays 
    $index = $age1.indexOf($element); 

    unset($age1[$index]); 
} 

var_dump($age1); // Print on screen 

這個PHP函數比較2個陣列的關鍵和收益之差。所以我們遍歷函數返回的每個元素,並從$ age1中移除它們;

+0

聽起來不錯,如果它是一個價值而不是指數?我可以使用array_diff嗎? – user1143217

+0

@ user1143217是的,你可以但從你給我的唯一併發值之間的2是關鍵,所以我比較他們,但你可以使用相同的腳本比較數組的價值。 – FrenchMajesty

+0

爲什麼我得到:解析錯誤:語法錯誤,意外'未設置'(T_UNSET)? – user1143217