Du willst also nur das haben, was zwischen 'Test' und 'Test' steht? Davon dann aber auch nur jedes Exemplar einmal?
Ich würde das Array durchgehen, das zwischen den 'Test's auslesen, in einem weiteren Array speichern und dieses dann mit array_unique() normalisieren.
PHP-Code:
<?php
$arr[0]="Text irgendwas Text";
$arr[1]="Text blabla Text";
$arr[2]="Text blabla Text";
$arr[3]="Text wasanderes Text";
for ($i=0; $i<count($arr); $i++) {
$arr2[$i]=preg_replace('|(text )(.*)( text)|is', '\2', $arr[$i]);
}
print_r($arr2);
$arr3=array_unique($arr2);
print_r($arr3);
?>