<?php
function test() {
$orderedids=array(7, 9, 5, 3);
$tags=array(
new Tag(3),
new Tag(7),
new Tag(5),
new Tag(9)
);
$flipped=array_flip($orderedids);
return usort($tags, function($tag1, $tag2) {
if $flipped[$tag1->id]<$flipped[$tag2->id] return -1;
else if $flipped[$tag1->id]==$flipped[$tag2->id] return 0;
else return 1;
});
}
class Tag {
public $id;
function __construct($id) {
$this->id=$id;
}
}
$rtags=test();
foreach ($rtags as $tag) echo $tag->id." ";