si, fai il ciclo che vuoi per estrarre i dati dall'array
se vuoi che il preg ti restituisca anche i dati senza parentesi, fai un
preg_match_all('/\(\((.*?)\)\)/s',$stringa,$matches);
e guarda nel $matches[1]
cosi eviti str_replace successivo
si, ci sono anche altri metodi. se t'interessa per scopi didattici come sarebbe quello a 3 passi piu' o meno come lo immaginavi tu, eccolo qua:
Codice PHP:
$l = strlen($stringa);
$c = $k = 0;
$matches = array();
for($i=0;$i<$l;$i++){
if($stringa{$i} == ')' && $stringa{$i+1} == ')'){
$c=0;
$k++;
}
if ($stringa{$i} == '(' && $stringa{$i-1} == '('){
$c=1;
continue;
}
if($c){
$matches[$k] .= $stringa{$i};
}
}
print_r($matches);
credo sia ovvio che vale la pena studiare le espressioni regolari per evitare di scrivere cazzate del genere nel codice