я в настоящее время есть массив объектов, как показано ниже:Сравните и сортировать массив объектов против другого массива
$aa = new StdClass;
$aa->name = 'aa';
$aa->index = 30;
$bb = new StdClass;
$bb->name = 'bb';
$bb->index = 30;
$cc = new StdClass;
$cc->name = 'cc';
$cc->index = 10;
$dd = new StdClass;
$dd->name = 'dd';
$dd->index = 20;
$ee = new StdClass;
$ee->name = 'ee';
$ee->index = 10;
Я поместил свои объекты в массив для сортировки:
$arr = [$aa, $bb, $cc, $dd];
I также имеют дополнительный массив, который я бы хотел использовать для сортировки объектов по порядку по индексу, например $aa->index
:
$map = [30, 20, 10, 10, 30];
Ожидаемый результат будет:
[$aa, $dd, $cc, $ee, $bb]
Другой из $aa
и $bb
не определен, они должны просто не повторять и все индексы должны быть назначены где-то.
Что бы быть лучшим способом организовать $arr
в порядке, установленном $map
БЕЗ использование foreach()
цикла?
Как вы решаете, относится ли первый индекс - '30' - к объекту' $ aa' или '$ bb'? –
@JiriHrazdil случайно, я полагаю – Coffee
Учитывая ваш пример - это '[$ aa, $ dd, $ cc, $ cc, $ aa]' правильный вывод? –