fork download
  1. <?php
  2. $arr = Array (
  3. Array("teste0", 1),
  4. Array("teste1", 1),
  5. Array("teste2", 2),
  6. Array("teste3", 2),
  7. Array("teste4", 2),
  8. Array("teste5", 3),
  9. Array("teste6", 4),
  10. Array("teste7", 4)
  11. );
  12.  
  13. $contagens = Array();
  14. foreach ($arr as $key => $subArr){
  15. $val = $subArr[1];
  16. $contagens[$val] = isset($contagens[$val]) ? $contagens[$val] + 1 : 1;
  17. }
  18.  
  19.  
  20. usort($arr, function ($a,$b) use ($contagens){
  21. return $contagens[$a[1]] == $contagens[$b[1]] ? $a[1] - $b[1] : $contagens[$b[1]] - $contagens[$a[1]];
  22. });
  23.  
  24. echo "<pre>";
  25. print_r($arr);
  26.  
  27. echo "</pre>";
  28. ?>
Success #stdin #stdout 0.02s 23832KB
stdin
Standard input is empty
stdout
<pre>Array
(
    [0] => Array
        (
            [0] => teste2
            [1] => 2
        )

    [1] => Array
        (
            [0] => teste3
            [1] => 2
        )

    [2] => Array
        (
            [0] => teste4
            [1] => 2
        )

    [3] => Array
        (
            [0] => teste0
            [1] => 1
        )

    [4] => Array
        (
            [0] => teste1
            [1] => 1
        )

    [5] => Array
        (
            [0] => teste6
            [1] => 4
        )

    [6] => Array
        (
            [0] => teste7
            [1] => 4
        )

    [7] => Array
        (
            [0] => teste5
            [1] => 3
        )

)
</pre>