strnatcasecmp
تابع strnatcasecmp() برای مقایسه طبیعی رشته است. مقایسه طبیعی یعنی اعداد مثل انسان فهمیده می شوند. مثلا 2 قبل از 10 است. این تابع به حروف بزرگ کوچک حساس نیست.
تعریف و کاربرد مقایسه طبیعی
در مقایسه طبیعی (Natural Compare)، بخش های عددی درست سنجیده می شوند. بنابراین، "pic2" قبل از "pic10" می آید. خروجی می تواند منفی، صفر، یا مثبت باشد.
سینتکس
strnatcasecmp(string1, string2) دو رشته می گیرد و نتیجه مقایسه را برمی گرداند.
مثال 1: مقایسه طبیعی بدون حساسیت به حروف
<?php
echo strnatcasecmp("2Hello world!", "10Hello WORLD!");
echo "<br>";
echo strnatcasecmp("10Hello world!", "2Hello WORLD!");
?>
مثال 2: مرتب سازی طبیعی آرایه با حروف مخلوط
<?php
$files = array("pic1", "pic2", "pic10", "Pic01", "pic100", "PIC20");
usort($files, "strnatcasecmp");
print_r($files);
?>
گام های عملی
- دو رشته ورودی را آماده کن.
strnatcasecmp(a, b)را صدا بزن.- اگر خروجی صفر بود، برابرند.
- خروجی منفی یعنی
aقبل ازbاست. - خروجی مثبت یعنی
aبعد ازbاست.
نکته ها و مقایسه ها
نکته: این تابع به بزرگی حروف حساس نیست. برای حالت حساس، به strnatcmp نگاه کن.
نکته: برای مقایسه معمولی، strcmp را ببین. اما مرتب سازی طبیعی برای نام فایل ها بهتر است.
جمع بندی سریع
- مرتب سازی طبیعی اعداد را درست می چیند.
- به بزرگی حروف حساس نیست.
- خروجی صفر، منفی، یا مثبت می شود.
- برای لیست فایل ها عالی است.