【发布时间】:2015-09-10 14:15:33
【问题描述】:
我想使用 PHP 对下面的数组进行排序。主要问题是我需要根据多个条件对数组进行排序:
- 先显示有价格的网站
- 如果价格相同,按字母顺序排序
- 如果多个网站没有价格,请按字母顺序排序
所以这个数组
array(
[Beslist.nl] => Array
(
[price] => 141,63
)
[Wehkamp.nl] => Array
(
[price] => none
)
[Bol.com] => Array
(
[price] => none
)
[Zalando.nl] => Array
(
[price] => none
)
[Webwinkel.nl] => Array
(
[price] => none
)
[Overig.nl] => Array
(
[price] => none
)
)
应该这样排序:
array(
[Beslist.nl] => Array
(
[price] => 141,63
)
[Bol.com] => Array
(
[price] => none
)
[Overig.nl] => Array
(
[price] => none
)
[Webwinkel.nl] => Array
(
[price] => none
)
[Wehkamp.nl] => Array
(
[price] => none
)
[Zalando.nl] => Array
(
[price] => none
)
)
我尝试了 asort 和 ksort,但是我需要根据多个条件进行排序,这使得它更加复杂。我希望我可以使用 SQL 对记录进行排序(当我从数据库中读取记录时)。但是,价格需要事后计算;这就是我需要使用 PHP 的原因。
谁能帮帮我?
【问题讨论】:
-
您是否在 Stack Overflow 上,有人必须将您的标题复制并粘贴到 google 并在第一个结果中得到答案?
-
查找 PHP 的
usort()function. -
你读过Reference: all basic ways to sort arrays and data in PHP吗? – 我会立即将其作为重复项关闭,但我会告诉您,您的数据结构看起来有一点点变化。
-
@Simba With
usort()OP 将失去他的钥匙(对于所有支持你的评论但不知道它是做什么的人) -
@Rizier123 同意他应该使用
uasort()