1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $pattern = '~^([0-9]+(?:-[0-9]+){1,3})-\h*(.+)~m';
if (preg_match_all($pattern, $fileA, $mA) && preg_match_all($pattern, $fileB, $mB)) {
// on crée un tableau associatif dont les clefs sont les parties textes et les valeurs sont la série de nombre
$arrayA = array_combine($mA[2], $mA[1]);
$arrayB = array_combine($mB[2], $mB[1]);
// on enleve les doublons (i.e: ceux qui ont la même valeur, donc la même série de nombre)
$arrayA = array_unique($arrayA);
$arrayB = array_unique($arrayB);
// on ne conserve que les entrées de $arrayA dont la valeur se trouve dans $arrayB
$arrayA = array_intersect($arrayA, $arrayB);
// on échange les clefs et les valeurs pour $arrayB
$arrayB = array_flip($arrayB);
// Affichage
foreach ($arrayA as $k=>$v) {
echo $v . "\t" . $k . "\n";
echo $v . "\t" . $arrayB[$v] . "\n";
}
} |
Partager