Notatki PHP

prywatne zapiski na kamieniu

Wyszukanie największej wartości, czy to w postaci łańcucha string, czy też jako wartości liczbowej:

 
function array_getMax($array){       
    $conteo=array_count_values($array);   
    if( count($conteo)==1 ){//returns full array when all values are the same.
        return  $array;      
    }      
    arsort($array);   
    //$antValue=null;
    $maxValue=null;
    $keyValue=null;
    foreach($array as $key=>$value){
        if($maxValue==null){
            $maxValue=$value;
            $keyValue=$key;
            break;
        }       
    }   
    $resultSearch=array_search_all($maxValue, $array);       
   return  array_fill_keys($resultSearch, $maxValue); 
}
 
//using array_search_all by helenadeus at gmail dot com
 
function array_search_all($needle, $haystack) {
 
    foreach ($haystack as $k=>$v) {  
        if($haystack[$k]==$needle){      
           $array[] = $k;
        }
    }
    return ($array); 
} 
 
//example
  $arreglo = array('e1'=>99, 'e2'=>'1000', 'e3'=>1, 'e4'=>1, 'e5'=>100);
 
  var_dump(array_getMax($arreglo)); 
 
array(1) { ["e2"]=> string(4) "1000" } 

 

 
//example
  $arreglo=array('e1'=>99,'e2'=>'99','e3'=>1,'e4'=>1,'e5'=>100.23);
 
  var_dump(array_getMax($arreglo)); 
 
array(1) { ["e5"]=> float(100.23) }