Wpis z mikrobloga

#programowanie #php

Mam tablicę powiedzmy:

['1','1','2','2','2','3','3','3','3','3','3','3','4']
i chce ją posortować tak żeby uzyskać:

['1','2','3','4','1','2','3','2','3','3','3','3','3']
Ma ktoś jakiś pomysł jakby to fajnie zrobić?
  • 6
1. Dzielisz na n podtablic takich samych elementów: [[1,1], [2,2,2], [3,3,3,3,3,3,3], [4]]
2. Wybierasz po jednym elemencie z każdej, dopóki nie będzie pusta:

[[1,1], [2,2,2], [3,3,3,3,3,3,3], [4]] => [1,2,3,4]
[[1], [2,2], [3,3,3,3,3,3]] => [1,2,3,4,1,2,3]
[[2], [3,3,3,3,3]]=> [1,2,3,4,1,2,3,2,3]
[[3,3,3,3]]

I teraz do końca same trójki: [1,2,3,4,1,2,3,2,3,3,3,3,3]
@kamil062: @Yoggi: Dzisiaj posiedziałem jeszcze nad tym i trochę skompresowałem:

$current = array('1','1','2','2','2','3','3','3','3','3','3','3','4');

$new = array();

while(!empty($current)){

foreach(array_keys(array_unique($current)) as $index){
$new[] = $current[$index];
unset($current[$index]);
}
}