2

我有一个这样的数组。

$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. 以这样的方式对输出数组进行排序,使输入数组中出现最多的元素位于顶部。
4

3 回答 3

3

应该没问题:

$numbers = array_count_values($array);

arsort($numbers); // Thanks Jessica!
$result = array_keys($numbers);
于 2013-06-12T07:22:13.330 回答
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);
?>
于 2013-06-12T07:28:17.973 回答
3

使用array_count_values()sort()

于 2013-06-12T07:19:01.897 回答