$versions = array('1.1.3', '1.1.1', '1.1.2', '1.1.0', '1.0.0', '1.0.1', '1.2.3.3', '1.0.2.3', '1.0.2', '2.3.1.3.1', '2.1.2.2', '2.3.0');
function sortVersion($versions, $sort_rule = true) { foreach ($versions as $key => $value) { $firstArr = explode('.', $value); $firstArrCount = count($firstArr); for ($i = 0; $i < $firstArrCount; $i++) { $firstArr[$i] = str_pad($firstArr[$i], 2, 0, STR_PAD_LEFT); } $versions[$key] = implode('.', $firstArr); } print_r( $versions) ; echo '', "\n"; if ($sort_rule) { sort($versions); } else { rsort($versions); } foreach ($versions as $key => $value) { $firstArr = explode('.', $value); $firstArrCount = count($firstArr); for ($i = 0; $i < $firstArrCount; $i++) { $firstArr[$i] = intval($firstArr[$i]); } $versions[$key] = implode('.', $firstArr); } return $versions; }