Ti commento il codice:

- come arriva $ord (l'ordine sporco di selezione)
$ord=array ( 0 => '', 1 => '1', 2 => '2', );

- asort ($ord); Ordina un array e mantiene le associazioni degli indici
$ord=array ( 0 => '', 1 => '1', 2 => '2', )

- reset ($ord); Porta il puntatore in prima posizione.

- list($k, $v) = each ($ord) mette ad ogni iterazione indice in $K e valore in $V
se è un numerico lo mette nell'array $check_ordered

while (list($k, $v) = each ($ord))
{
if (is_numeric($v))
array_push ($check_ordered, $k);
}

$check_ordered=array ( 0 => 1, 1 => 2, )