allora, faccio un pò di pulizia.

questo codice mi stampa direttamente sulla pagina:
Codice PHP:
    $zonaOld 'ND';
    foreach (
$queryClienti as $cl) {
        
$clienteCodice $cl['cliente'];
        
$zona $cl['zona'];

        echo 
$zona ' - ' $cl['ragsoc'] . '<br>';

        if (
$zonaOld != 'ND' && $zonaOld != $zona) {
            
$queryBudgetNuovi $budgetNuovi->getByZonaCollezione($zona$bdgCollezione);
            echo 
$zona ' - RIGA DA AGGIUNGERE con dati da $queryBudgetNuovi' '<br>';
        }

        
$zonaOld $cl['zona'];
    } 

questo l'output:
codice:
Z00 - CLIENTE
Z00 - CLIENTE
Z06 - CLIENTE
Z06 - RIGA DA AGGIUNGERE con dati da $queryBudgetNuovi
Z06 - CLIENTE
Z06 - CLIENTE
questo quello che mi dovrebbe uscire:
codice:
Z00 - CLIENTE
Z00 - CLIENTE
Z00 - RIGA DA AGGIUNGERE con dati da $queryBudgetNuovi
Z06 - CLIENTE
Z06 - CLIENTE
Z06 - CLIENTE
Z06 - RIGA DA AGGIUNGERE con dati da $queryBudgetNuovi
quel ND ci sarebbe solo alla prima iterazione, giusto perchè all'inizio $zonaOld è vuoto.