Natsort()

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

natsort

(PHP 4, PHP 5, PHP 7, PHP 8)

natsort — Sortera en array med en "naturlig ordning"-algoritm

Beskrivning

natsort(array &$array): true

Denna funktion implementerar en sorteringsalgoritm som ordnar alfanumeriska strängar på det sätt som en människa skulle göra samtidigt som nyckel/värde-associationer bibehålls. Detta beskrivs som en "naturlig ordning". Ett exempel på skillnaden mellan denna algoritm och vanliga datormässiga strängsorteringsalgoritmer (används i sort()) kan ses i exemplet nedan.

Notera:

Om två medlemmar jämförs som lika behåller de sin ursprungliga ordning. Före PHP 8.0.0 var deras relativa ordning i den sorterade arrayen odefinierad.

Notera:

Återställer arrayens interna pekare till det första elementet.

Parametrar

array
Input-arrayen.

Returvärden

Returnerar alltid true.

Ändringslogg

Version Beskrivning
8.2.0 Returtypen är nu true; tidigare var det bool.

Exempel

Exempel #1 natsort()-exempel som demonstrerar grundläggande användning

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

asort($array1);
echo "Standard sorting\n";
print_r($array1);

natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);
?>

Exemplet ovan kommer att skriva ut:

Standard sorting
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Natural order sorting
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Exempel #2 natsort()-exempel som demonstrerar potentiella fallgropar

<?php
echo "Negative numbers\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo "Zero padding\n";
$zeros = array('09', '8', '10', '009', '011', '0'); 
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

Exemplet ovan kommer att skriva ut:

Negative numbers
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Zero padding
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

Se även

natcasesort()
Sortera en array med en skiftlägesokänslig "naturlig ordning"-algoritm
Sortering av Arrayer - Jämförelse av arraysorteringsfunktioner
strnatcmp()
Strängjämförelser med en "naturlig ordning"-algoritm
strnatcasecmp()
Skiftlägesokänsliga strängjämförelser med en "naturlig ordning"-algoritm