Forum und email

strnatcmp

(PHP 4, PHP 5)

strnatcmp — Συγκρίσεις string με τη χρήση ενός αλγορίθμου "φυσικής διάταξης"

Περιγραφή

int strnatcmp ( string $str1 , string $str2 )

Η συνάρτηση αυτή χρησιμοποιεί έναν αλγόριθμο σύγκρισης, ο οποίος διατάσσει τα αλφαριθμητικά strings με τον ίδιο τρόπο που θα το έκανε και ένας άθρωπος. Ένα παράδειγμα της διαφοράς μεταξύ αυτού του αλγορίθμου και αυτών που χρησιμοποιούνται συνήθως από τους υπολογιστές για την ταξινόμηση των string (χρησιμοποιούνται και στην strcmp()) μπορεί να θεωρηθεί το ακόλουθο:

<?php
$arr1 
$arr2 = array("img12.png","img10.png","img2.png","img1.png");
echo 
"Standard string comparison\n";
usort($arr1,"strcmp");
print_r($arr1);
echo 
"\nNatural order string comparison\n";
usort($arr2,"strnatcmp");
print_r($arr2);
?>
Ο παραπάνω κώδικας θα παράξει το ακόλουθο αποτέλεσμα:
Standard string comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order string comparison
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
Για περισσότερες πληροφορίες μπορείτε να ανατρέξετε στη σελία του Martin Pool » Natural Order String Comparison.

Όμοια με τις υπόλοιπες συναρτήσεις σύγκρισης, και αυτή επιστρέφει < 0 εάν η παράμετρος str1 είναι μικρότερη της str2 , > 0 εάν η str1 είναι μεγαλύτερη της str2 , και 0 εάν οι δύο παράμετροι είναι ίσες.

Προσέξτε ότι αυτή η σύγκριση είναι case sensitive.

Ανατρέξτε επίσης στις: ereg(), strcasecmp(), substr(), stristr(), strcmp(), strncmp(), strncasecmp(), strnatcasecmp(), strstr(), natsort() και natcasesort().