I have a multi-dimensional array in PHP as follows:
$array = Array (
[0] => Array ( [bill] => 1 )
[1] => Array ( [bill] => 1 )
[2] => Array ( [bill] => 1 )
[3] => Array ( [bill] => 1 )
[4] => Array ( [jack] => 5 )
[5] => Array ( [jack] => 5 )
[6] => Array ( [jake] => 6 )
[7] => Array ( [jake] => 6 )
[8] => Array ( [jake] => 6 )
[9] => Array ( [jake] => 6 )
[10] => Array ( [sara] => 7 )
[11] => Array ( [sara] => 7 )
[12] => Array ( [sara] => 7 )
[13] => Array ( [sara] => 7 )
[14] => Array ( [william] => 8 )
[15] => Array ( [william] => 8 )
[16] => Array ( [william] => 8 )
[17] => Array ( [william] => 8 )
[19] => Array ( [william] => 8 )
[20] => Array ( [martin] => 9 )
[21] => Array ( [martin] => 9 )
[22] => Array ( [martin] => 9 )
[23] => Array ( [tara] => 10 )
[24] => Array ( [tara] => 10 )
[25] => Array ( [tara] => 10 )
[26] => Array ( [tara] => 10 )
);
I want to convert $array
to $result
so that it can first sort the array based on the number of similar elements and then returning the first five values. For example, the $array
has five similar [william] => 8
, four similar [bill] => 1
, four similar [jake] => 6
, four similar [sara] => 7
, four similar [tara] => 10
, three similar [martin] => 9
and two similar [jack] => 5
in $array
variable. So, the $result
variable with the first five most repeated elements should be as follows:
$result = Array (
[0] => Array ( [william] => 8 )
[1] => Array ( [bill] => 1 )
[2] => Array ( [jake] => 6 )
[3] => Array ( [sara] => 7 )
[4] => Array ( [tara] => 10 )
);
Could you please help me how to solve this problem?