ホームページ > バックエンド開発 > PHPチュートリアル > PHP4_PHP チュートリアルで自然なソートを実行する方法

PHP4_PHP チュートリアルで自然なソートを実行する方法

WBOY
リリース: 2016-07-13 17:24:52
オリジナル
1000 人が閲覧しました

次のようないくつかの文字列の場合:

inf1
inf3
inf12

strcmp() 関数を使用して比較する場合、順序は次のようになります:

inf1
inf12
inf3

しかし、これは明らかに私たちが望んでいることではありません。一般に、この解決策は、inf01 inf03 inf12 のように、数値の前に 0 を追加することです。この0を加えずに、私たちが望む実際の順序を自然な順序に従って並べることは可能でしょうか?

これを行うために PHP4 には 2 つの関数が提供されています:

int strnatcasecmp (string str1, string str2)
int strnatcmp(string str1, string str2)

サポートされるバージョンは次のとおりです: PHP4 >= 4.0 RC2

説明は次のとおりです:

str1 str2 を自然な順序でソートします。
戻り値 戻り値 =0 は str1 が str2 に等しいことを意味し、
戻り値 >0 は str1 が str2 より大きいことを意味します。

例は次のとおりです:


$str=array("a","a0","a3","a2","a10","a18","a24"); =count ($str);
echo "total=".$k."
";

echo "
strnatcmp で並べ替える
";
if (strnatcmp($str[$i-1],$str[$i])>0){
$tmp=$str[$i-1]
$str[$i-1]=$str; [$ i]; $str[$i]=$tmp;
}

print_r($str);
echo "
strcmp



for($i =1 ;$iif(strcmp($str[$i-1],$str[$i])>0){
$tmp=$str[$i-1] ;

$str[$i-1]=$str[$i]; $str[$i]=$tmp print_r($str)
}
sort で並べ替えます";
sort($str); print_r($str);
?>

出力は次のとおりです:


total=7


Use strnatcmp to sort
Array ( [0] => a [ 1] => a0 [ 2] => a2 [3] => a3 [4] => a10 [5] => a18 [6] => a24 )
strcmp でソート
Array ( [0] => a [ 1] => a0 [ 2] => a2 [3] => a10 [4] => a18 [5] => a24 [6] => a3 )
sort で並べ替え
Array ( [0] => a [ 1] => a0 [ 2] => a10 [3] => a18 [4] => a2 [5] => a24 [6] => a3 )


わかりますか?

実際、この関数はより複雑な関数もサポートしています。例:

a
x2-g8
1.001
本当に便利なので試してみてください。



http://www.bkjia.com/PHPjc/532095.html

www.bkjia.com
tru​​e
http://www.bkjia.com/PHPjc/532095.html
技術記事
次のようないくつかの文字列の場合: inf1 inf3 inf12 strcmp() 関数を使用して比較する場合、順序は次のとおりです: inf1 inf12 inf3 しかし、これは明らかに私たちが望む結果ではありません、一般的に...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート