переместить массив, если соответствующие значения как минимум за 5 итераций имеют дубликат
Есть ли PHP-код, который может перемещать многомерный массив минимум 5 итераций, если значения имеют дубликат?
Это пример кода.
10),
array('value' => 2),
array('value' => 1),
array('value' => 3),
array('value' => 2), //This will move
array('value' => 4),
array('value' => 5),
array('value' => 5), //This will move
array('value' => 3), //This will move
array('value' => 4), //This will move
array('value' => 10), //Ok reach minimum of 5 count
array('value' => 9),
array('value' => 8),
array('value' => 7),
array('value' => 7), // This will move
array('value' => 8), // This will move
array('value' => 1), //Ok reach minimum of 5 count
array('value' => 6),
array('value' => 6), // This will move
array('value' => 19) //Ok reach minimum of 5 count
);
);
?>
Это основная идея. Я хочу переместить значения, если они нашли дубликат в течение минимум 5 итераций. Перемещение итераций может превышать 5. Данные могут быть случайными. Это будет цикл, чтобы найти лучший результат. Это возможно?
Вот мои ожидаемые результаты. Это могут быть другие результаты, которые могут удовлетворить логику.
6), //Ok
array('value' => 9), //Ok
array('value' => 2), //Ok
array('value' => 7), //Ok
array('value' => 1), //Ok
array('value' => 4), //Ok
array('value' => 8), //Ok
array('value' => 5), //Ok
array('value' => 9), //Ok
array('value' => 2), //Ok
array('value' => 3), //Ok
array('value' => 6), //Ok
array('value' => 4), //Ok
array('value' => 10), //Ok
array('value' => 8), //Ok
array('value' => 7), //Ok
array('value' => 1), //Ok
array('value' => 3), //Ok
array('value' => 5), //Ok
array('value' => 10) //Ok
);
);
?>
Надеюсь, ты сможешь мне помочь.
РЕДАКТИРОВАТЬ:
Вот мой код
$child) {
if( $child["value"]==$temp ) {
$i = $key+5;
$required_array[$i] = $child;
} else {
$i = $key;
//if(isset($required_array[$i])) $i++;
while(isset($required_array[$i])) {
$i++;
}
$required_array[$i] = $child;
}
$temp = $child["value"];
}
ksort($required_array);
print_r($required_array);
//Tried this but always move on five iterations and found duplicate within the range of five