是否可以对如下所示的数组进行排序和重新排列:
itemsArray = [
['Anne', 'a'],
['Bob', 'b'],
['Henry', 'b'],
['Andrew', 'd'],
['Jason', 'c'],
['Thomas', 'b']
]
Run Code Online (Sandbox Code Playgroud)
匹配此数组的排列:
sortingArr = [ 'b', 'c', 'b', 'b', 'a', 'd' ]
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有任何ID可以跟踪.我需要优先使items-array与sortedArr匹配尽可能接近.
更新:
这是我正在寻找的输出:
itemsArray = [
['Bob', 'b'],
['Jason', 'c'],
['Henry', 'b'],
['Thomas', 'b']
['Anne', 'a'],
['Andrew', 'd'],
]
Run Code Online (Sandbox Code Playgroud)
知道如何做到这一点?
我在PHP中有两个数组.第一个数组($ author_array)由特定顺序的user_ids组成,如下所示:(8,1,6)
第二个数组($ user_results)由一组对象组成,如下所示:
Array
(
[0] => stdClass Object
(
[ID] => 1
[user_login] => user1
)
[1] => stdClass Object
(
[ID] => 6
[user_login] => user6
)
[2] => stdClass Object
(
[ID] => 8
[user_login] => user8
)
)
Run Code Online (Sandbox Code Playgroud)
我想"排序"第二个数组,使其按此顺序排列,它与第一个数组(8,1,6)中的值的顺序相匹配.所以它看起来像这样:
Array
(
[0] => stdClass Object
(
[ID] => 8
[user_login] => user8
)
[1] => stdClass Object
(
[ID] => 1
[user_login] => user1
)
[2] => stdClass Object
(
[ID] => 6
[user_login] => …Run Code Online (Sandbox Code Playgroud) 我有一个对象列表:
[ { id: 4, name:'alex' }, { id: 3, name:'jess' }, { id: 9, name:'...' }, { id: 1, name:'abc' } ]
Run Code Online (Sandbox Code Playgroud)
我有另一个正确的"订单"列表.
[ 3, 1, 9, 4]
Run Code Online (Sandbox Code Playgroud)
如何根据键"id"将第一个列表与第二个列表的顺序相匹配?结果应该是:
[ { id: 3, name:'jess' }, { id: 1, name:'abc' }, { id: 9, name:'...' }, { id: 4, name:'alex' } ]
Run Code Online (Sandbox Code Playgroud) I've had trouble with the examples in the PHP manual, so I'd like to ask this here...
I have an array of objects.. Is there a way to sort it based on the contents of the object?
For example, my array is:
Array
(
[0] => stdClass Object
(
[id] => 123
[alias] => mike
)
[1] => stdClass Object
(
[id] => 456
[alias] => alice
)
[2] => stdClass Object
(
[id] => 789
[alias] => zeke
) …Run Code Online (Sandbox Code Playgroud) 我有两个包含对象的数组.一个包含某些顺序的键,另一个包含数据,我需要按照给定的排序键数组对数据数组进行排序.我怎样才能做到这一点?
var a = ['d','a','b','c'] ;
var b = [{a:1},{c:3},{d:4},{b:2}];
Run Code Online (Sandbox Code Playgroud)
结果应该是:
result = [{d:4},{a:1},{b:2},{c:3]
Run Code Online (Sandbox Code Playgroud) 我试图对包含具有“在线”、“离线”、“忙碌”状态键的对象数组进行排序,因此只想以所有“在线”都出现在顶部的方式对数组进行排序,然后是“忙碌” ”然后“离线”
var arr = [{_id: "58e21249", name: "test2", status: "offline"},
{_id: "58e1249", name: "test3", status: "online"},
{_id: "58qwe49", name: "test21", status: "offline"},
{_id: "58ed49", name: "test212", status: "online"},
{_id: "58ee49", name: "test23", status: "offline"},
{_id: "58xe49", name: "test12", status: "online"},
{_id: "5849", name: "test2323", status: "busy"},
{_id: "58er49", name: "test2121", status: "busy"}];
arr.sort(function(first, second) {
if (second.status == "online") return 1;
});
console.log(arr);
Run Code Online (Sandbox Code Playgroud)
这只会返回我的状态:顶部的“在线”。谢谢