Probiers mal hiermit. Ich merk mir einfach den Rang. Beachte dass die Zahl, die du über die ID bekommst nicht mehr die Position im anderen Array ist, sondern der einfache Rang, also in deinem Beispiel (ID => Rang)
Code:
4 => 1
6 => 2
1 => 3
5 => 3
3 => 5
2 => 6
7 => 7
Code:
$indexarray = array();
$lastrank = 0;
for ($i = 0; $i < count($deinarray); $i++)
{
if ($deinarray[$i]['test'] != $deinarray[$lastrank]['test'])
{
$lastrank = i;
}
$indexarray[$deinarray[$i]['id']] = $lastrank;
}
Ich hatte oben auch noch einige kleine Fehlerchen im Source
Ist zwar wieder nicht getestet, aber es dürfte funktionieren
Greetz
alcaeus