2010-10-11 5 views
0

Je suis en train de faire la différence entre les deux tableaux, mais avec array_diff, array_diff_assoc ou array_diff_key je ne peux pas obtenir ce que je veux ..Obtenez la différence réelle entre deux tableaux en php

Array 1 : 
    0 => 424012, 
    1 => 423000, 
    2 => 425010, 
    3 => 431447, 
    4 => 421001, 
    5 => 421002, 

Array 2 : 
    0 => 424012, 
    1 => 423000, 
    2 => 425010, 
    3 => 431447, 
    4 => 431447, 
    5 => 421001, 
    6 => 421002, 

array_diff = array() 
// empty 

jarray_diff_assoc = array ( 
    4 => 431447, 
    5 => 421001, 
    6 => 421002, 
) 
// OK but too much :) 

array_diff_key = array(
6 => 421002 
) 
// nope i don't want that :(

I veulent 431447, parce que c'est seulement une fois dans le premier tableau et deux fois dans la seconde.

Cordialement, Tony

Répondre

2

Est-ce exactement ce que vous voulez? Seulement ceux qui se produisent une fois dans la première, et deux fois dans la seconde?

Vous pouvez écrire votre propre fonction pour cela. Effectuez une recherche dans le second tableau, obtenez une liste des valeurs qui se produisent deux fois (ou plus d'une fois, selon ce que vous voulez réellement), puis recherchez celles qui figurent dans le premier (cela peut être fait à l'aide d'un dans la fonction PHP array_intersect).

+0

En effet, vous devrez le faire manuellement. Comptez les éléments dans les deux tableaux, puis comparez. –

+0

Oui je sais que je peux le faire, mais sérieusement rien n'existe déjà pour cela? –

+0

Qu'est-ce que vous voulez réellement que la fonction retourne? – PawelMysior

Questions connexes