przenieś tablicę, jeśli odpowiadające jej wartości mają minimum 5 iteracji, ma duplikat
Czy istnieje kod php, który może przenieść wielowymiarową tablicę minimum 5 iteracji, jeśli wartości mają duplikat?
To jest przykładowy kod.
<?php
$results = array(
array('value' => 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
);
);
?>
To jest podstawowy pomysł. Chcę przenieść wartości, jeśli znajdą duplikat w minimum 5 iteracjach. Przesuwanie iteracji może poruszać się o więcej niż 5. Dane mogą być losowe. Zapętli, aby znaleźć lepszy wynik. czy to możliwe?
Oto moje oczekiwane wyniki. Mogą to być inne wyniki, które mogą spełnić logikę.
<?php
$results = array(
array(
array('value' => 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
);
);
?>
Mam nadzieję, że możesz mi pomóc.
EDYTOWAĆ:
Oto mój kod
<?php
$required_array = array();
$temp = "";
$temp2 = "";
foreach($array as $key=>$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