PHP | Segundo elemento más frecuente en una array

Dada una array, tenemos que encontrar el segundo elemento más frecuente presente en ella.

Ejemplos:

Input : array(3, 3, 4, 5, 5, 5, 9, 8, 8, 8, 8, 8);
Output : Second most frequent element is: 5

Input : array("geeks", "for", "geeks");
Output : Second most frequent element is: for

El problema anterior se puede resolver en otros idiomas usando el método de bucle, pero en PHP hemos incorporado una función para realizar esta tarea. Las funciones que se describen a continuación:

  • array_count_values() : esta función se usa para contar la frecuencia de todos los elementos y devuelve la array asociada, que contiene los valores como clave y la frecuencia como valores.
  • arsort() : Esta función se utiliza para ordenar los elementos en orden inverso y manteniendo el índice asociado.
  • array_keys() : esta función devuelve una array que contiene todas las claves o subconjuntos.

Enfoque: Al principio creamos una nueva array que contiene la frecuencia de todos los elementos con valores como clave y contamos como valores usando array_count_values .
Ordene la nueva array en orden inverso usando arsort , luego tome todas las claves de la array ordenada usando array_keys . La segunda clave será el segundo elemento más frecuente de la array original.

A continuación se muestra la ilustración del enfoque anterior:
Ejemplo 1:

<?php    
      
    $arr = array(2, 2, 3, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9);
      
    // new array containing frequency of values of $arr
    $arr_freq = array_count_values($arr);    
      
     // arranging the new $arr_freq in decreasing order 
     // of occurrences
     arsort($arr_freq);
       
     // $new_arr containing the keys of sorted array
     $new_arr = array_keys($arr_freq);
       
     // Second most frequent element
     echo "Second most frequent element is:"." ".$new_arr[1];
?>
Producción:

Second most frequent element is: 4

Ejemplo 2:

<?php
      
      
    $arr = array("Geeks", "for", "Geeks");
      
    // new array containing frequency of values of $arr
    $arr_freq = array_count_values($arr);
         
    // arranging the new $arr_freq in decreasing 
    // order of occurrences
    arsort($arr_freq);
       
    // $new_arr containing the keys of sorted array
    $new_arr = array_keys($arr_freq);
       
    // Second most frequent element
    echo "Second most frequent string is:"." ".$new_arr[1];
?>
Producción:

Second most frequent string is: for

Publicación traducida automáticamente

Artículo escrito por akash1295 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *