Anderson Montes De oca Anderson Montes De oca - 1 year ago 67
PHP Question

How to order a php array with duplicate

Good night, do not speak much English. what I need is to sort an array by ordern duplicate
Do not know how I leave here the code to see if someone can help me

$arr = array(1=> 'Love is true',
2=> 'Love is true',
3=> 'Hello Word',
4=> 'Hello Word',
5=> 'Hope',
6=> 'Hope',
7=> 'Love is true',
8=> 'Hello Word',
9=> 'Hello Word',
11=>'Hello Word',
13=>'Hello Word',
14=>'Hello Word',
15=>'Hello Word');

Hello Word >duplicate > 8
Hope >duplicate > 4
Love is true >duplicate > 3

I need Order Retun # print_r($arr);

Example of how I want

Hello Word position 1# In array
Hope 2# In array
Love is true 3# In array


[0] => Hello Word position
[1] => Hope
[2] = Love is true

Answer Source

You can do it like this:

$count = array_count_values($arr); // count each repetition
arsort($count); // sort the values
$array = array_keys($count); // get the expected array

That will output:

    [0] => Hello Word
    [1] => Hope
    [2] => Love is true

See it in action here.

You can get some references for the functions used in this answer below:

  • array_count_values: Counts all the values of an array;
  • asort: Sort an array and maintain index association;
  • array_keys: Return all the keys or a subset of the keys of an array.

You can var_dump each step of the process to see what's going on.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download