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

  関連記事

MongoDBとPHP_リンクと個人的ポイントまとめ

=============================== リンク集 === …

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

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

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

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

クロームでブラウザ・端末エミュレート機能の使い方。えらく見つけづらくなった。。

クロームのエミュレーターが見つけづらくなったのでメモ。 ①デベロッパーツールを開 …

【PHP】【Slim】DBの利用は自力で頑張る!

公式の説明とか、サイトを眺めましたが特別O/Rマッパーのような機能は無く。 自分 …