For Want Of A Better Word

辞書順比較・数値順比較・自然順の違い

      2017/06/05

辞書順と数値順

【参考リンク】http://d.hatena.ne.jp/perlcodesample/20080318/1205856860

# 数値順では、”1″ ( 1 ) より “02” ( 2 ) のほうが大きい
# 辞書順では、先頭の1文字から順に比較してゆくので、
# “1” より “02” のほうが小さい

辞書順比較では,先頭から1文字づつ,文字コードの大きさを比べてゆきます
“a”は”b”より小さくなります。
またサンプルのように、”1″は”02″より大きくなります。

1,12,2について辞書順比較と数値比較の例

辞書順比較

1
12
2
の順に小さい

数値順比較

1
2
12
の順に小さい

 

(補足)辞書順で、「文字と数字」 「大文字と小文字」の比較

数値とアルファベット

・数値の方が小さい・先と判断される。

大文字と小文字

小文字が小さい、先と判断される。

 

自然順

文字列であっても、数値部分は数値として比較するというのが、自然順。

数値部分も文字列として、比較するのが辞書順。

文字列の中に数値が含まれる場合は、自然順ソートの方が、人間の感覚に近いと考えられる。

 

PHPではnasort()というコマンドがあります。

ソート例

■自然順
bin/php-5.2.1
bin/php-5.2.2
bin/php-5.2.3
bin/php-5.2.4
bin/php-5.2.5
bin/php-5.2.6
bin/php-5.2.7
bin/php-5.2.8
bin/php-5.2.9
bin/php-5.2.10

■辞書順
bin/php-5.2.1
bin/php-5.2.10
bin/php-5.2.2
bin/php-5.2.3
bin/php-5.2.4
bin/php-5.2.5
bin/php-5.2.6
bin/php-5.2.7
bin/php-5.2.8
bin/php-5.2.9

ふむー、、自然順は自然だのう。。

 

 - php

  関連記事

【サクッと始める】PHPでGoogle Analytics API(WEBアプリケーション)

注意 ①本記事で使っているGoogleAPI用PHPライブラリ「google-a …

[php]ログインセッションの維持・有効期間について (session,cookie)

cookieとsessionファイルと、登場人物が複数いるので、どこに何を設定す …

アンケートOSS lime surveyを軽く使ってみてのメモ

varsion 1.92 良い所 作成できるアンケートは多岐にわたり、細かい設定 …

[PHP][PDO]prepareでのバインド方法整理

データをstmtに渡す部分をちょくちょく待ちがえて混乱するのでメモ 参考:htt …

phpでsimplexml_load_fileを使ってハマった所

スクレイピングの一歩としてrssをパースしようとした。 その時「simplexm …