问题标签 [natsort]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - MySQL ORDER BY 的问题 - 我可以使用 natsort 来修复它吗?
我需要对 MySQL 结果使用自然排序,因为它当前对我的 INT 值进行如下排序:
- 1
- 123
- 1256
- 22
- 231
[ETC]
虽然我需要它来排序
- 1
- 22
- 231
- 1256
我知道“natsort”函数,但它不适用于 MySQL 查询结果。我如何(自然地)排序,是否可以在查询中执行此操作?
谢谢您的帮助!
编辑:示例查询$result = mysql_query("SELECT * FROM forums ORDER BY 'posts' DESC;");
不完全确定我对 DESC 的使用是否有效,但它不会引发错误,所以它一定没问题。不幸的是,似乎将 DESC 更改为 ASC 也没有效果......
php - 为什么 natsort(或 natcasesort)不在这里工作?
也许我在做一些令人尴尬的错误,但为什么这个数组没有被排序?
当我根本不尝试对数组进行排序时,我似乎得到了相同的结果。sort()
有效,但似乎没有别的。
谢谢你的帮助!
更新:
以下是示例结果:
没有排序:
与sort()
:
使用natsort()
或natcasesort()
:
我希望至少 natsort 的结果看起来像 sort 的。
php - natsort 多任务数组
我有一个像这样的多维数组:
我需要对内部数组进行排序,以便按天键以自然顺序返回数据。
像这样的IE:
我认为我需要的是一个通过 $key 将 natsort 应用于多维数组的函数,但到目前为止,我还没有找到除标准排序之外的任何函数。
有什么帮助吗?
php - PHP:重新分配数组键
我有一个按降序排列的数字数组。当我添加到这个数组时,我添加到最后,然后执行natsort($times)
. $times 然后看起来像这样(由 print_r 获得):
但是,我希望重新分配所有键,以便刚刚添加的 0.10 是数组索引 4,以便轻松查看新时间的位置。即“您的排名是 $arrayindex+1”
除了将整个数组复制到一个新数组中以获取新键之外,还有更好的方法吗?
php - 按自然降序对目录文件名数组进行排序
我有一个按自然降序返回的内容目录。
我正在使用scandir()
and natsort()
,但添加array_reverse()
没有结果。
我一直在研究使用组合opendir()
以及readdir()
其他任何方法来影响这一结果。
要排序的项目是编号的图像文件。它们将被返回为:10
9
8
7
等等,但是 like from like 1000
999
998
997
... until0
这是我当前的代码:
ajax - ajax natsort() json 数组排序
我正在使用 php opendir 函数从一个文件中 ajaxing 一个图像数组。它在本地按顺序工作,但当我将它上传到我的服务器时随机吐出。我想可能是因为我没有亲自订购它,所以它正在这样做。我尝试在我的数组上使用natsort() ,然后用JSON_ENCODE 将它发回,但它不起作用,因为它返回了一个对象(并且它的顺序仍然错误,只是编号)。我从 console.log() 本地得到这个:
这是来自console.log()的我的服务器:
有没有更好的排序数组的方法?有关如何解决此问题的任何建议?提前为您的帮助喝彩。
编辑 01 - 解决方案
使用 javascript 对 JSON 回调后的数组进行排序:
php - PHP 证明了一个挑战 - 带有标签的 natsort
php - 带有前导字符 PHP 的 natsort 故障
我有几百个 xhtml 文件,我将它们的名称推送到一个数组中。命名约定p0x.xhtml
是x
1-400。我正在尝试natsort
数组,但前导p
似乎与排序冲突。
作为最后的手段,我可以重命名文件,但如果可能的话想避免这种情况。如果有人知道解决方法,我将不胜感激。
产量:
期望的输出是:
php - 为什么在 natsort / strnatcmp / strnatcasecmp 中忽略空格?
我strnatcmp
在比较函数中使用对表格中的人名进行排序。对于我们的比利时客户,我们得到了一些奇怪的结果。他们有像“范德布罗克”和“范德维尔”这样的名字,然后strnatcasecmp("Van der", "Vander")
回来了0
!
由于自然比较旨在像人类一样进行排序,我不明白为什么这些空间会被完全忽略。
例如:
给出:
但是人类会说:
我现在的解决方案是将所有空格替换为下划线,处理得当。两个问题:为什么会这样natsort
工作?有更好的解决方案吗?