我在这里尝试了许多解决方案,但是它们似乎都需要一个公用键来对数组进行排序。
我的数组的var_dump()如下:
array(10){[0] =>字符串(11)“农业” [2] =>字符串(6)“金属” [12] =>字符串(10)“卫生” [14] =>字符串(19)“健康与美丽” [22] =>字符串(13)“石油和天然气” [27] =>字符串(12)“建筑” [31] =>字符串(13)“制造” [58] = > string(8)“零售商” [61] => string(11)“ Distributor” [77] => string(7)“ Service”}
我希望能够按以下顺序对数组中的字符串进行排序:
服务
分销商
零售商
制造
建筑
石油与天然气
健康与美容
卫生
金属
农业
我知道这不是理想的解决方案,但我确实需要手动对它们进行排序。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
对我来说,您似乎想按降序对数组进行排序。为此,您应该使用krsort()
函数。
答案 1 :(得分:1)
主要区别在于,这是从数据库中生成的,因此从数据库中删除一个也应将其从数组中删除。因此,为什么我不能手动创建它。
因此,我假设,如果将一个添加到数据库中,它也应该以某种方式“可用”? 如果在数据库中将其重命名,排序是否仍然有效?
唯一可靠的解决方案是将另一列添加到数据库表中,我们将其称为position
-然后获取条目并按位置值对它们进行排序,位置值可以是1到10。
提示:以步长(thausand)开始(1000,2000,3000,...)。这使您以后可以在介于两者之间的某个位置添加项目,而无需更改所有后续项目。 (即,创建位置为1500的条目将成为新的第二个条目,其他所有内容将自动向下移动一个位置。如果要插入另一个“新的第二个条目”,则可以使用1250,依此类推……给您一些“时间”,直到您最终必须重新索引位置-如果您想一直保持下去,请使用十进制/双精度^^)
答案 2 :(得分:0)
要以相反的顺序对数组进行排序,请使用
array array_reverse ( array $array [, bool $preserve_keys = FALSE ]
参数
数组 输入数组。
preserve_keys 如果设置为TRUE,则保留数字键。非数字键不受此设置的影响,并且将始终保留。