2010-11-02 10 views
26

Mam tablicy php jak:porządek numeryczny ciąg tablicy w php

myarr[1] = "1", 
myarr[2] = "1.233", 
myarr[3] = "0", 
myarr[4] = "2.5" 

wartości są faktycznie ciągi, ale chcę to tablica być uporządkowane numerycznie, a także biorąc pod uwagę wartości przepływu i utrzymanie skojarzenia kluczy.

Proszę mi pomóc. Dzięki

+0

Pięść z, jest to normalne, że dwukrotnie ustawić indeks 1? –

Odpowiedz

49

Można używać normalnego sort funkcję. Drugi parametr określa, jak chcesz go posortować. Wybierz SORT_NUMERIC.

przykład:

sort($myarr, SORT_NUMERIC); 
    print_r($myarr); 

drukuje

Array 
(
    [0] => 0 
    [1] => 1 
    [2] => 1.233 
    [3] => 2.5 
) 

Informacje: Do utrzymywania pary klucza wartości, należy asort (zajmuje te same argumenty), Przykład wyjściowych:

Array 
(
    [3] => 0 
    [1] => 1 
    [2] => 1.233 
    [4] => 2.5 
) 
+0

nice one @Felix – Adnan

1

Skorzystaj z funkcji php usort iw swojej funkcji zwrotnej skonwertuj struny do elementów pływających, aby je porównać.

0

można konwertować ciągi liczb rzeczywistych (float) i sortować je potem:

foreach ($yourArray as $key => $value) { 
    $yourArray[$key] = floatval($value); 
} 

sort($yourArray, SORT_NUMERIC); 
9

Użyj natsort()

$myarr[1] = "1"; 
$myarr[2] = "1.233"; 
$myarr[3] = "0"; 
$myarr[4] = "2.5"; 

natsort($myarr); 
print_r($myarr); 

wyjściowa:

Array ([2] => 0 [0] => 1 [1] => 1.233 [3] => 2.5) 
Powiązane problemy