Συνάρτηση strnatcmp

Η συνάρτηση strnatcmp εκτελεί σύγκριση δύο συμβολοσειρών λαμβάνοντας υπόψη τη φυσική διάταξη των χαρακτήρων. Σε αντίθεση με τη συνηθισμένη σύγκριση, αυτή η συνάρτηση αναγνωρίζει αριθμούς μέσα σε συμβολοσειρές και τους συγκρίνει με βάση την αριθμητική τους τιμή. Η συνάρτηση επιστρέφει 0 εάν οι συμβολοσειρές είναι πανομοιότυπες, αριθμό -1 εάν η πρώτη συμβολοσειρά είναι μικρότερη της δεύτερης, και αριθμό μεγαλύτερο 1 εάν η πρώτη συμβολοσειρά είναι μεγαλύτερη της δεύτερης.

Σύνταξη

phpstrnatcmp(string $str1, string $str2): int

Παράδειγμα

Σύγκριση συμβολοσειρών με αριθμούς με συνηθισμένο τρόπο και με χρήση strnatcmp:

php<?php
  $res1 = strcmp("file2.txt", "file10.txt");
  $res2 = strnatcmp("file2.txt", "file10.txt");
  
  echo "strcmp result: " . $res1 . "\n";
  echo "strnatcmp result: " . $res2;
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpstrcmp result: 1
strnatcmp result: -1

Παράδειγμα

Σύγκριση συμβολοσειρών με διαφορετικούς αριθμούς:

php<?php
  $res = strnatcmp("image5.jpg", "image15.jpg");
  echo $res;
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php-1

Παράδειγμα

Σύγκριση πανομοιότυπων συμβολοσειρών:

php<?php
  $res = strnatcmp("hello123", "hello123");
  echo $res;
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php0

Δείτε επίσης

  • τη συνάρτηση strcmp,
    που εκτελεί σύγκριση συμβολοσειρών ασφαλή για δυαδικά δεδομένα
  • τη συνάρτηση strcasecmp,
    που συγκρίνει συμβολοσειρές χωρίς διάκριση πεζών/κεφαλαίων
  • τη συνάρτηση natcasesort,
    που ταξινομεί έναν πίνακα χρησιμοποιώντας φυσική διάταξη χωρίς διάκριση πεζών/κεφαλαίων