<?php function cmp($a,$b) { preg_match("~[0-9]+\.?[0-9]*~", $a, $reg_a); preg_match("~[0-9]+\.?[0-9]*~", $b, $reg_b); return $reg_a[0]>$reg_b[0]?1:($reg_a[0]<$reg_b[0]?-1:0); } $ar= array("dfg9", "dfg9.6", "dfg9.2", "dfg7.1", "hjk3", "yui4"); usort($ar,"cmp"); print_r($ar); ?>