【发布时间】:2010-07-07 18:11:34
【问题描述】:
所以我有两个数组。其中一个看起来像这样(它的值或元素的数量可以改变):
array('4dec' , 'def3', 'a3d6', 'd12f');
和其他:
array(array('id' => 'd12f', 'name' => 'John'),
array('id' => 'a5f1', 'name' => 'Kathy'),
array('id' => 'def3', 'name' => 'Jane'),
array('id' => 'a3d6', 'name' => 'Amy'),
array('id' => '4dec', 'name' => 'Mary'),
array('id' => 'ecc2', 'name' => 'Fred'));
(这个不要变,元素和值每次都一样)。
请注意,第一个具有第二个的一些元素。 如何根据第一个数组的元素对第二个数组进行排序?
所以基本上,在这种情况下,第二个数组应该变成:
array(array('id' => '4dec', 'name' => 'Mary'),
array('id' => 'def3', 'name' => 'Jane'),
array('id' => 'a3d6', 'name' => 'Amy'),
array('id' => 'd12f', 'name' => 'John'),
array('id' => 'a5f1', 'name' => 'Kathy'),
array('id' => 'ecc2', 'name' => 'Fred'));
(第一个中存在的元素移到顶部,与第一个相同的顺序,其余的保持不变)。
【问题讨论】:
-
数据数组是否总是只有“id”和“name”属性?如果是这样,我们可以丢弃这些显式键名并使用第一个数组作为第二个数组的索引,而无需排序。