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

  関連記事

CentOSをインストールしたときにいつも最初にやること(apache mysql phpのインストール)

SElinuxの無効化 iptableの無効化 apacheのインストール・自動 …

phpでImageMagickを使うための各種インストール

phpからImageMagickを使いたい。peclのimagickをインストー …

【php】strtotimeで日付計算する場合の基準日の指定のくせ「A non well formed numeric value encountered in 」

またちょっと嵌った。。。 strtotime() 書式化された文字列からunix …

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

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

WordPressで作ったページと同じデザインで、好きなコンテンツを好きな場所に作りたい

下記のわがままをかなえるため、調査 そもそも、wordpressでブログを作った …