Мне нужны элементы этого:
['1','1','2','2','2','3','3','3','3','3','3','3','4']
чтобы быть сгруппированы в куски с уникальными значениями, чтобы они выглядели так:
['1','2','3','4','1','2','3','2','3','3','3','3','3']
Первый "кусок" '1','2','3','4'
содержит все уникальные значения без дубликатов, второй '1','2','3'
и т.д.
Самая большая проблема заключается в том, что мой массив не комбинируется с простыми числами, это двумерный ассоциативный массив, что-то вроде этого:
[['id'=>'xd1c',...],['id'=>'ab2c',...],['id'=>'xd1c',...],['id'=>'xd1c',...],['id'=>'ab2c',...],['id'=>'xd1c',...],['id'=>'687d',...],...]
У меня нет большого опыта работы с алгоритмами и расширенной сортировкой, и я чувствую себя немного перегруженным. Пожалуйста, если вы можете указать мне в правильном направлении.
Попробуйте этот код:
$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]);
}
}
print_r($new);