|
Почему так сортируются строки?
|
|||
---|---|---|---|
#18+
Замыкая круг. Разработчик в принципе подтвердил моё рассуждение в 18564206 , только вот никаких псевдочисел нет: "In ANSI collation, any number (or string that is in canonic numeric form) is collated numerically, before all non-numeric strings." Причём это не всегда было так, а начиная с какой-то версии (не сказали с какой, но видимо c довольно давней). Не важен ни результат $isvalidnum, ни возможный <MAXNUMBER> при "классической" проверке на число: n=+n. Не стал бы и писать об этом, но механизм сортировки один из "ядерных", и его непонятное поведение меня встревожило. Теперь успокоили :) Всем спасибо, кто поучаствовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2015, 19:52 |
|
Почему так сортируются строки?
|
|||
---|---|---|---|
#18+
Alexey Maslov"In ANSI collation, any number (or string that is in canonic numeric form) is collated numerically, before all non-numeric strings." Причём это не всегда было так, а начиная с какой-то версии (не сказали с какой, но видимо c довольно давней). Это с SPJ932 присутствующем в продукте еще с 1993(!) года. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2015, 23:41 |
|
Почему так сортируются строки?
|
|||
---|---|---|---|
#18+
servit, спасибо, правда я и тогда всё понял :). Однако лучше бы для большей понятности автор поста употребил оператор ]], а не ], т.к. ] трактуется как "следует-за в порядке кодов символов без учёта специфики числовой сортировки". Для преодоления этого недостатка и был когда-то добавлен в язык Стандарта ISO/1995 оператор ]] - "следует-за в порядке действующей Collation". Мой старый пример, расширенный примером автора, наглядно показывает разницу: Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 13:57 |
|
|
start [/forum/topic.php?fid=39&gotonew=1&tid=1556460]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 411ms |
0 / 0 |