Skip to content

Instantly share code, notes, and snippets.

@lbvf50mobile
Last active November 13, 2020 16:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lbvf50mobile/143dc5ea1ce14c6d0b6b99e22f22b2e3 to your computer and use it in GitHub Desktop.
Save lbvf50mobile/143dc5ea1ce14c6d0b6b99e22f22b2e3 to your computer and use it in GitHub Desktop.
Just PHP FUN 150.
<?php
function pickPeaks(array $arr) {
$size = count($arr);
//echo implode(",",$arr)."\n";
$pos = []; $peaks = []; $prv = $arr[0];
for($i = 1; $i <= $size-2; $i += 1){
$cr = $arr[$i];
$cr_i = $i;
$nxt = $arr[$i+1];
while($nxt == $cr && $i <= $size - 2) {
$nxt = $arr[$i+1];
if($nxt != $cr) break;
//echo "- $i $nxt ($size);\n";
$i += 1;
}
if($prv < $cr && $cr > $nxt){
array_push($pos,$cr_i);
array_push($peaks,$cr);
}
$prv = $cr;
}
return ['pos' => $pos, 'peaks' => $peaks];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment