3v4l.org

run code in 300+ PHP versions simultaneously
<?php function sov_find_key($findvalue, $array, $increment) { reset($array); $key = array_search($findvalue, $array); if ($key === false || $key === 0){ return false; } if ($increment === 0){ return $key; } $isNegative = $increment < 0 ? true:false; $increment = abs($increment); while(key($array) !== $key) { next($array); } $x=0; while($x < $increment) { if( $isNegative ){ prev($array); } else { next($array); } $x++; } return key($array); } $findvalue = '3'; $array = array( 'A' => 'CONTRACTS', 'B' => '1', 'C' => '2', 'D' => '3', 'E' => '4', 'F' => '5', 'G' => '6'); echo sov_find_key($findvalue, $array, -1);

preferences:
25.16 ms | 409 KiB | 5 Q