2010-12-15 21 views
-2

Quelqu'un peut-il s'il vous plaît me donner une idée pour manipuler le tableau en PHP.manipulation de tableau PHP

J'ai un tableau comme cet ordre

$test = array(
       "0"=>"62" 
       "1"=>"61" 
       "2"=>"60" 
       "3"=>"53" 
       "4"=>"52" 
       "5"=>"51"); 

Mais je dois réorganiser ou trier dans cet ordre.

$test = array(
       "2"=>"60" 
       "1"=>"61" 
       "0"=>"62" 
       "5"=>"51" 
       "4"=>"52" 
       "3"=>"53"); 

S'il vous plaît aidez-moi ...

+1

Quelle est la "règle" de votre commande? –

+2

Il n'y a pas d'ordre évident dans votre deuxième exemple. Comment voulez-vous que nous arrivions à ces numéros différents? –

+1

Donc, vous voulez trier par valeur où les premiers chiffres sont en baisse et les autres chiffres sont ascendants qu'environ 3 chiffres? Quel serait l'ordre de désir pour 61,62,63,101,110,121,122,130 .... –

Répondre

3

(ne fonctionne que pour les nombres à deux chiffres, voir @Olivers commentaire)

ici vous allez:

function csort($a, $b) { 
    $ta = floor($a/10); 
    $tb = floor($b/10); 
    if($ta !== $tb) { 
     return $tb - $ta; 
    } 
    return $a - $b; 
} 

$test = array(
       "0"=>"62", 
       "1"=>"61", 
       "2"=>"60", 
       "3"=>"53", 
       "4"=>"52", 
       "5"=>"51"); 

usort($test, "csort"); 
print_r($test); 

impressions

Array 
(
    [0] => 60 
    [1] => 61 
    [2] => 62 
    [3] => 51 
    [4] => 52 
    [5] => 53 
) 

Référence: usort

Ou ausort si vous voulez garder l'index.