Stavo leggendo un libro in cui ho trovato questa funzione per il calcolo dei numeri primi

che mi ha incuriosito.
Codice PHP:
<?php
//Setaccio di Eratostene per il calcolo dei numeri primi
function sieve($n)
{
for (
$i 2$i <= sqrt($n); $i++)
  for (
$j $i$ind $i $j$ind <= $n$j++, $ind $i $j)
    
$carray[$ind] = 1;
    for (
$i $n$plist = array(); $i 1$i--)
    if (!
$carray[$i]) array_push($plist,$i);
    return (
$plist);
}

$numeri sieve(100);
while (list(, 
$value) = each($numeri))
echo 
"$value 
\n"
;
?>
Qualcuno può spiegarmi il funzionamento del secondo ciclo for.
Non avevo mai visto una sintassi simile.