In questo articolo vedremo come individuare la posizione di un elemento in un array riordinando i risultati con PHP.
Dato un array di input e un elemento da cercare, dobbiamo restituire la posizione dell'elemento se questo è già presente nell'array o in alternativa aggiungerlo all'array e riordinare tale array effettuando quindi una nuova ricerca.
function search_insert_position($nums = [], $target = 0) {
if(count($nums) === 0 || $target === 0) {
return -1;
}
$index = array_search($target, $nums, true);
if($index) {
return $index;
}
$nums[] = $target;
sort($nums);
return array_search($target, $nums, true);
}
Esempio d'uso:
$tests = [
['nums' => [1,3,5,6], 'target' => 5],
['nums' => [1,3,5,6], 'target' => 2],
['nums' => [1,3,5,6], 'target' => 7]
];
foreach($tests as $test) {
extract($test);
echo search_insert_position($nums,$target) . "\n";
}