问题标签 [array-multisort]
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.
php - 如何在PHP中对多个数组进行排序
我编写了一个脚本来生成一组数据,但现在想按分数顺序显示。数组输出如下;
简而言之,我希望将其转换如下;
我一直在看 asort() 但无法得到任何工作。任何帮助将非常感激。
php - 按不是第一个维度的数值对多维数组进行排序
我正在为正在构建的论坛程序创建搜索功能。在某一时刻,我有一个名为 searchResults 的数组,它是数字的,包含“分数”作为其维度之一(其他是“timeStarted”、“authorUID”和“TID”)
所以,这个数组此时处于混乱状态,我需要将它组织到 $searchResults[1] 将是最高的“分数”,而 [2] 将是第二高的,等等。我查看了 php.net 上的 array_multisort但很快就迷失了它的工作原理。那么我将如何按数字顺序对 $searchResults 进行排序(重新排列键),以进一步维度“排序”的降序降序作为排序机制?确实没有任何代码可以使用,但是如果您需要数组外观的布局,请执行以下操作:
谢谢你的帮助。
php - 优化多维数组的重排和去重
我想知道是否有人对优化以下代码有任何好主意。我有一个多维数组($List),如下所示:
首先,我将删除任何具有相同标题的条目(无论其他值是什么),如下所示:
完美的。然后我重新排序数组,首先是优先级字段,然后是 id:
两个代码块都出现在一个循环中,因此在重新排序之前清除了 $sort_id 和 $sort_priority。
有没有更好的方法来做到这一点 - 即使用排序过程删除重复的标题条目?此代码块在多达 500,000 条记录的循环中执行,因此欢迎任何改进!
php - PHP array_multisort 无法正常工作
我正在尝试按 $ar2 的降序对 $ar1 进行排序。什么都没有发生。
我错过了什么
php - 如何用数组进行这样的排序?
这些是我的数组:
这只是为了表示它的外观,而不是我的实际 PHP 代码。
现在,我想要做的是 - 我想按数组$foo1
的总和对数组进行排序,$foo2
并且$foo3
. 但这和我上一个问题不一样,因为这一次,如果数组中的值$foo2
小于 100 或数组中的值$foo3
小于 600,我不希望它靠近顶部。我希望它放在数组$foo2
中的值大于 100 且数组中的值$foo3
大于 600 的所有最后一个数组的后面。因此,在以下数组的情况下,结果将是:
如果您没有完全理解上述内容,这就是原因。因为与数组$foo2
中key相同foo1
的数组$foo1
中的值在100以上,而与数组$foo3
中key相同foo1
的数组中的值在$foo1
600以上,总和最高。foo2
是下一个,因为它是具有相同索引键且满足要求并且总和最高的下一个元素。foo4
下一个,因为其他行都不满足要求,并且foo4
其他数组中的等效键在不满足要求的行中具有最大的总和。出于同样的原因,排名第 4 和第 5 foo3
。foo5
希望我不是太具体,有什么帮助吗?
php - 根据其他两个数组对数组进行排序
我一共有三个数组
阵列 1
数组 2(按平均年龄排序)
数组 3(按人口排序)
如何首先根据数组 2 对数组 1 进行排序,然后再根据数组 3 对数组 1 进行排序。我想要以下输出:
排序数组 1
我尝试使用array_multisort
来实现这一点,但它不起作用,例如
非常感谢任何帮助。
php - 如果多维数组中的值未设置整个包含的数组
我有一个将项目添加到数据库的脚本。
目前我有一个这样创建的数组:
专辑名称并不总是唯一的,$album['test']
可以是随机文本(稍后使用),也可以是“FALSE”(当我说假时,我的意思是“假”这个词,用文本字母拼写)
我需要一个函数来以某种方式搜索数组,并比较名称和测试值......每个专辑名称可能有几个条目,有几个不同的随机文本值,一个说 FALSE。如果有一个数组条目的测试值设置为 FALSE,那么它将删除所有其他包含的具有相同专辑名称的数组...
所以这:
变成这样:
我希望这是有道理的,因为除非你知道我的整个脚本结构,否则它看起来有点令人困惑,这就是我提供这么多信息的原因。
php - 排序多维关联数组
我想按价格订购这个数组并保留我的密钥而不改变它们。
这是我一直在使用的。
输出:
它对数组进行排序,但键已更改。我怎样才能保持键的原样?
php - 如何对具有两个值的数组进行排序,第一个值的权重为 1.5 倍?
我想对多维数组进行排序。只需一把钥匙,完全没有问题。
现在我想用两个值对上面的数组进行排序,value_a
并且value_b
权重为value_a
1.5 倍。value_a 是一个距离,例如 300 英尺,value_b 是一个价格,例如 450。只是为了给你一些背景信息......
array_multisort
能够根据两个值对数组进行排序,但不会对它们进行不同的加权。
任何帮助将不胜感激:)
非常感谢您的努力!
php - 错误地使用 array_multisort() 给出正确的结果?
我目前正在接触一些遗留代码以试图清理它并且遇到了一些难题。我解决它甚至不是远程任务关键,所以最多认为这是一个体育问题,但它仍然让我感到困惑。让我好奇。
这段代码:
...同时抛出 12 个通知(“ Notice: Array to string conversion ...
”),按预期$workTables
工作,通过根据 对所有元素进行排序Update_time
。
('x' 列是我试图排除Name
它与由.)work_table_1367940392
work_table_1367940395
Name
Update_time
显然,由于我不想巧合地编程,至少这将被替换为:
...符合 的描述array_multisort()
,也做我们想要的,并且不会在我们的脸上扔通知。
但我真正感兴趣的是为什么旧代码有效(尽管有通知)。
部分原因似乎是asort()
and co. 的行为,它们具有(部分)未记录的特性,即它们可以通过根据数组的内容进行操作,从“左到右”通过结构来处理多维数组(至少在PHP 5.4.7 (cli)
)......但是......我一直在努力理解正在发生的事情$workTables
和$sort
“可互换”。
我试图查看 PHP 的 C 源代码来弄清楚,但我一直试图理解这里发生的事情:
...因为我对 C 的了解已经严重生锈,而且zend_qsort()
它本身完全超出了我的范围。
有接盘侠吗?
请记住,我并不急于得到答案,所以不要花太多时间在这上面,但也许其他人也喜欢谜题?:)
就个人而言,我在这方面投入了一些时间,纯粹是因为我更喜欢彻底理解代码,尤其是当我试图清理它时——即使它只是巧合的代码。在进一步理解方面,我刚刚走到了死胡同,所以 stackoverflow 似乎是进一步启蒙的最佳机会。
所以,如果你对幕后发生的事情有一个想法(我怀疑这是我忽略的一些微不足道的事情;这往往是我兜了一圈圈后的问题),我很想听听!:)