【发布时间】:2014-03-09 23:44:04
【问题描述】:
为此找到合适的标题几乎是不可能的。
想象一下这个场景:
我们有一个包含某些产品标签的数组。键是每个标签的唯一 id,值是标签:
可用标签
Array (
[3] => Sweet
[4] => Sour
[5] => Bitter
[6] => Winter
[7] => Organic
)
我们有另一个数组,其中包含已选择的标签。选择具有由 key 定义的特定顺序,而值表示 id(我们在数组 #1 中看到的实际标签)。
按特定顺序选择标签
Array (
[10] => 4
[20] => 3
[30] => 7
)
我的理论方法
当然,我可以遍历第二个数组,在一个新数组中收集适当的值(对应于第一个数组的条目)。然后我可以遍历第一个数组并添加新数组中尚不存在的所有值(到新数组)。
说实话 - 感觉不是很专业。不幸的是,我不知道如何更好地做到这一点。
问题
如何使用第二个数组(Selected Tags)定义的年表对第一个数组(Available Tags)进行整齐排序?
注意
我想得到第一个数组中的所有项目。不仅仅是第二个中列出的那些。
如果有人好奇:这是用于可排序的多选。已选择的项目是可排序的,因此必须以正确的顺序出现。其他项目顺序无关紧要。我的服务器端数据处理程序类为我提供了所描述的这两个数组,所以这就是我必须使用的。
【问题讨论】:
-
不可能根据第二个数组中的顺序对第一个数组的所有元素进行排序,因为第二个数组只引用了第一个数组的部分元素。你想对第二个数组中没有引用的元素做什么?
-
好点。嗯,这是可能的,当然。但是,你是对的——剩下的怎么办?好吧,诚实并不重要。唯一重要的是,第二个数组中定义的条目以正确的顺序在排序后的数组中结束。其他条目可以保留在任何地方 - 在第二个数组中提到的条目之前或之后。
-
这些数据是否来自数据库?
-
是的,确实如此。
标签: php arrays sorting associative-array