returns second largest absolute value form array in php

  • A+
Category:Languages

Create a function which will accept array of numeric values, and returns second largest absolute value form array

input : array(13, -12, 8, 2, 5)

expected answer : 12

here is my code

<?php function print2largest($arr, $arr_size) {     if ($arr_size < 2)     {         echo(" Invalid Input ");         return;     }      $first = $second = PHP_INT_MIN;     for ($i = 0; $i < $arr_size ; $i++)     {         if ($arr[$i] > $first)         {             $second = $first;             $first = $arr[$i];         }          else if ($arr[$i] > $second &&                  $arr[$i] != $first)             $second = $arr[$i];     }     if ($second == PHP_INT_MIN)         echo("There is no second largest element/n");     else         echo("The second largest element is " . $second . "/n"); }  $arr = array(13, -12, 8, 2, 5); $n = sizeof($arr); print2largest($arr, $n); ?> 

output i got : 8

 


It can be easy done in "php-way":

$arr = array(13, -12, 8, 2, 5); $absoluteArr = array_map('abs', array_unique($arr)); rsort($absoluteArr); echo $absoluteArr[1]; 

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: