<?php

$total_zero = 10; $var1 = "1.1.1"; $var2 = "10.1.1"; $var3 = "2.1.1"; $var4 = "1"; $var5 = "2"; $var6 = "3"; $var7 = "0.1"; $var9 = "10"; $var8 = "0"; $tab = array($var1 => 'salut', $var2 => 'salut', $var3 => 'salut', $var4 => 'salut', $var5 => 'salut', $var6 => 'salut', $var7 => 'salut', $var8 => 'salut', $var9 => 'salut' );

foreach($tab as $item => $value){ $indice = explode('.', $item); $nombre_zero = $total_zero - strlen($item);

if ($indice[0] == '0') {
    $code_zero[] = strrev($item);
    $tableau_zero[$item] = $value;
    unset($tab[$item]);
}
else{
    $code[$item] = $indice[0];
    var_export($code);
    echo '<br>';
}

} array_multisort($code, SORT_ASC, $tab);

foreach ($tab as $key => $row) { //Pour chaque élément, on retire le point et on met du vide $code[$key] = str_replace('.', '', $key);

} array_multisort($code_zero, SORT_ASC, $tableau_zero);

var_export($tableau_zero+$tab);