问题标签 [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.

0 投票
7 回答
2694 浏览

php - 如何在PHP中对多个数组进行排序

我编写了一个脚本来生成一组数据,但现在想按分数顺序显示。数组输出如下;

简而言之,我希望将其转换如下;

我一直在看 asort() 但无法得到任何工作。任何帮助将非常感激。

0 投票
2 回答
3825 浏览

php - 按不是第一个维度的数值对多维数组进行排序

我正在为正在构建的论坛程序创建搜索功能。在某一时刻,我有一个名为 searchResults 的数组,它是数字的,包含“分数”作为其维度之一(其他是“timeStarted”、“authorUID”和“TID”)

所以,这个数组此时处于混乱状态,我需要将它组织到 $searchResults[1] 将是最高的“分数”,而 [2] 将是第二高的,等等。我查看了 php.net 上的 array_multisort但很快就迷失了它的工作原理。那么我将如何按数字顺序对 $searchResults 进行排序(重新排列键),以进一步维度“排序”的降序降序作为排序机制?确实没有任何代码可以使用,但是如果您需要数组外观的布局,请执行以下操作:

谢谢你的帮助。

0 投票
1 回答
197 浏览

php - 优化多维数组的重排和去重

我想知道是否有人对优化以下代码有任何好主意。我有一个多维数组($List),如下所示:

首先,我将删除任何具有相同标题的条目(无论其他值是什么),如下所示:

完美的。然后我重新排序数组,首先是优先级字段,然后是 id:

两个代码块都出现在一个循环中,因此在重新排序之前清除了 $sort_id 和 $sort_priority。

有没有更好的方法来做到这一点 - 即使用排序过程删除重复的标题条目?此代码块在多达 500,000 条记录的循环中执行,因此欢迎任何改进!

0 投票
1 回答
1138 浏览

php - PHP array_multisort 无法正常工作

我正在尝试按 $ar2 的降序对 $ar1 进行排序。什么都没有发生。

我错过了什么

0 投票
2 回答
100 浏览

php - 如何用数组进行这样的排序?

这些是我的数组:

这只是为了表示它的外观,而不是我的实际 PHP 代码。

现在,我想要做的是 - 我想按数组$foo1的总和对数组进行排序,$foo2并且$foo3. 但这和我上一个问题不一样,因为这一次,如果数组中的值$foo2小于 100 或数组中的值$foo3小于 600,我不希望它靠近顶部。我希望它放在数组$foo2中的值大于 100 且数组中的值$foo3大于 600 的所有最后一个数组的后面。因此,在以下数组的情况下,结果将是:

如果您没有完全理解上述内容,这就是原因。因为与数组$foo2中key相同foo1的数组$foo1中的值在100以上,而与数组$foo3中key相同foo1的数组中的值在$foo1600以上,总和最高。foo2是下一个,因为它是具有相同索引键且满足要求并且总和最高的下一个元素。foo4下一个,因为其他行都不满足要求,并且foo4其他数组中的等效键在不满足要求的行中具有最大的总和。出于同样的原因,排名第 4 和第 5 foo3foo5

希望我不是太具体,有什么帮助吗?

0 投票
2 回答
171 浏览

php - 根据其他两个数组对数组进行排序

我一共有三个数组

阵列 1

数组 2(按平均年龄排序)

数组 3(按人口排序)

如何首先根据数组 2 对数组 1 进行排序,然后再根据数组 3 对数组 1 进行排序。我想要以下输出:

排序数组 1

我尝试使用array_multisort来实现这一点,但它不起作用,例如

非常感谢任何帮助。

0 投票
3 回答
107 浏览

php - 如果多维数组中的值未设置整个包含的数组

我有一个将项目添加到数据库的脚本。

目前我有一个这样创建的数组:

专辑名称并不总是唯一的,$album['test']可以是随机文本(稍后使用),也可以是“FALSE”(当我说假时,我的意思是“假”这个词,用文本字母拼写)

我需要一个函数来以某种方式搜索数组,并比较名称和测试值......每个专辑名称可能有几个条目,有几个不同的随机文本值,一个说 FALSE。如果有一个数组条目的测试值设置为 FALSE,那么它将删除所有其他包含的具有相同专辑名称的数组...

所以这:

变成这样:

我希望这是有道理的,因为除非你知道我的整个脚本结构,否则它看起来有点令人困惑,这就是我提供这么多信息的原因。

0 投票
4 回答
187 浏览

php - 排序多维关联数组

我想按价格订购这个数组并保留我的密钥而不改变它们。

这是我一直在使用的。

输出:

它对数组进行排序,但键已更改。我怎样才能保持键的原样?

0 投票
1 回答
549 浏览

php - 如何对具有两个值的数组进行排序,第一个值的权重为 1.5 倍?

我想对多维数组进行排序。只需一把钥匙,完全没有问题。

现在我想用两个值对上面的数组进行排序,value_a并且value_b权重为value_a1.5 倍。value_a 是一个距离,例如 300 英尺,value_b 是一个价格,例如 450。只是为了给你一些背景信息......

array_multisort能够根据两个值对数组进行排序,但不会对它们进行不同的加权。

任何帮助将不胜感激:)

非常感谢您的努力!

0 投票
1 回答
389 浏览

php - 错误地使用 array_multisort() 给出正确的结果?

我目前正在接触一些遗留代码以试图清理它并且遇到了一些难题。我解决它甚至不是远程任务关键,所以最多认为这是一个体育问题,但它仍然让我感到困惑。让我好奇。

这段代码:

...同时抛出 12 个通知(“ Notice: Array to string conversion ...”),按预期$workTables工作,通过根据 对所有元素进行排序Update_time

('x' 列是我试图排除Name它与由.)work_table_1367940392work_table_1367940395NameUpdate_time

显然,由于我不想巧合地编程,至少这将被替换为:

...符合 的描述array_multisort()做我们想要的,并且不会在我们的脸上扔通知。

但我真正感兴趣的是为什么旧代码有效(尽管有通知)。

部分原因似乎是asort()and co. 的行为,它们具有(部分)未记录的特性,即它们可以通过根据数组的内容进行操作,从“左到右”通过结构来处理多维数组(至少在PHP 5.4.7 (cli))......但是......我一直在努力理解正在发生的事情$workTables$sort可互换”。

我试图查看 PHP 的 C 源代码来弄清楚,但我一直试图理解这里发生的事情:

...因为我对 C 的了解已经严重生锈,而且zend_qsort()它本身完全超出了我的范围。

有接盘侠吗?

请记住,我并不急于得到答案,所以不要花太多时间在这上面,但也许其他人也喜欢谜题?:)

就个人而言,我在这方面投入了一些时间,纯粹是因为我更喜欢彻底理解代码,尤其是当我试图清理它时——即使它只是巧合的代码。在进一步理解方面,我刚刚走到了死胡同,所以 stackoverflow 似乎是进一步启蒙的最佳机会。

所以,如果你对幕后发生的事情有一个想法(我怀疑这是我忽略的一些微不足道的事情;这往往是我兜了一圈圈后的问题),我很想听听!:)