Avrei la necessità, dati 3 array, di recuperare determinati valori non ripetuti (in pratica devo ricavare eventuali dipendenze di ID da un db) ed inserirli in un array di risultati
All'indice C posso avere dei doppioni

Per fare un esempio vi posto il codice dove, ahimè, il risultato non è quello che mi aspetto ... non so più come fare

Dati i 3 array:
- se quello con chiave B non è un array, metto in tmp quello con chiave A
- altrimenti faccio differenza tra A e B e
-> se la diff non è array vuoto, tmp= merge A+diff
-> altrimenti tmp= merge A+diff

dall'esempio del codice il risultato che mi aspetto, senza doppioni, è
codice:
ris = array(1 => array(1,2,8), 2 => array(1,2), 3 => array(1,2), 4 => array(2,8))
qualcuno sa dirmi dove sbaglio? a me sembra tutto ok

Codice PHP:
$arr1['A'] = array(2,5,7,8,9,10);    // tutti gli id (madri e figlie)
$arr1['B'] = array(5,7,9,10);        // id con madre<>0 (figlie)
$arr1['C'] = array(2,2,1,1);        // madre dei B    (madri delle figlie B)

$arr2['A'] = array(7,9);
$arr3['B'] = array(7,9);
$arr2['C'] = array(2,1);

$arr3['A'] = array(2,7,9);
$arr3['B'] = array(7,9);
$arr3['C'] = array(2,1);

$arr4['A'] = array(2,8);

for(
$x=$x<=$x++){
    unset(
$tmpDiff);
    unset(
$tmpSum);
    if(!
is_array(${'arr'.$x}['B']))
        
$tmpSum = ${'arr'.$x}['A'];
    else{
        
array_unique(${'arr'.$x}['C']);
        
$tmpDiff array_diff(${'arr'.$x}['A'], ${'arr'.$x}['B']);
        
$tmpSum array_merge(${'arr'.$x}['C'], empty($tmpDiff) ? ${'arr'.$x}['A'] : $tmpDiff);
    }
    
array_unique($tmpSum);
    
sort($tmpSum);
    
$res[$x] = $tmpSum;
}

print 
"<pre>";
print_r($res);
print 
"</pre>"
grazie mille!!

edit: scusate ho corretto il codice che avevo copiato una porzione sbagliata