如何按出现次数的顺序列出数组的元素?

时间:2013-06-12 07:13:52

标签: php arrays cakephp

我有这样的数组。

$array = array(
'Element1', 
'Element2', 
'Element3', 
'Element1', 
'Element1', 
'Element4', 
'Element4', 
'Element2', 
'Element2', 
'Element2', 
'Element2', 
'Element4', 
'Element5', 
'Element5' );

我想要一个这样的数组作为输出。

$output = array('Element2' , 'Element1', 'Element4', 'Element5', 'Element3');

所以,我想要的是:

  1. 从数组中删除重复的所有元素。
  2. 以输入数组中出现最多的元素位于顶部的方式对输出数组进行排序。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

应该没问题:

$numbers = array_count_values($array);

arsort($numbers); // Thanks Jessica!
$result = array_keys($numbers);

答案 2 :(得分:3)

您的预期输出与您列出的要求相矛盾。 Element5应该在Element3

之前
<pre>
<?php
$values = array(
'Element1', 
'Element2', 
'Element3', 
'Element1', 
'Element1', 
'Element4', 
'Element4', 
'Element2', 
'Element2', 
'Element2', 
'Element2', 
'Element4', 
'Element5', 
'Element5' );

$result = array_count_values($values);
arsort($result);
$result = array_keys($result);
print_r($result);
?>