唯一的php多维数组和按事件排序

唯一的php多维数组和按事件排序,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个PHP多维数组,如:- $a = array($arrayA, $arrayB, $arrayA, $arrayC, $arrayC, $arrayA...........) 如何获得一个结果数组,该数组具有与此数组不同的元素,并首先以更多出现次数进行排序,如:- array( $arrayA, $arrayB, $arrayC) 因为数组$arrayA在第一个数组中是3倍,所以它在结果数组中是第一位的 我试过:- $newArray = array(); $count = cou

我有一个PHP多维数组,如:-

$a = array($arrayA,  $arrayB, $arrayA, $arrayC, $arrayC, $arrayA...........)
如何获得一个结果数组,该数组具有与此数组不同的元素,并首先以更多出现次数进行排序,如:-

array( $arrayA, $arrayB, $arrayC)
因为数组
$arrayA
在第一个数组中是3倍,所以它在结果数组中是第一位的

我试过:-

$newArray = array();
$count = count($a);
$i = 0;

foreach ($a as $el) {
if (!in_array($el, $newArray)) {
    $newArray[$i] = $el;
    $i++;
}else{
    $oldKey = array_search($el, $newArray);
    $newArray[$oldKey+$count] = $el;
    unset($newArray[$oldKey]);
}
}
krsort($newArray);
这是完美的工作,但这是一个非常漫长的过程,因为我的数组有数千个元素。提前感谢您的帮助。

尝试以下方式:-

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));

类似于@saravanan答案,但结果已排序:-

<?php

$input = [['b'],['a'],['b'],['c'],['a'],['a'],['b'],['a']];

$result = array_count_values( array_map("serialize", $input));
arsort($result,SORT_NUMERIC);
$result = array_map("unserialize",array_keys($result));
print_r($result);

试着先询问努力程度,然后给出代码。这是一个代码编辑平台,不是一个代码发布平台platform@Anant我不明白你的观点,一个完全正确的问题,一个很好的答案,未来的读者不会关心OP的effort@cske谢谢,伙计,但如果我们有两个元素的出现次数相同,这将不起作用。Exe。如果$arrayX和$arrayY都出现了5次,那么它将只显示$arrayY。请尝试先询问努力程度,然后给出代码。这是一个代码编辑平台,不是一个代码发布平台platform@Anant如果你能解决这个问题,请试着回答。你没有给出任何解决方案,你在寻找借口。我是stackoverflow新手,这就是为什么我没有发布我的努力,因为它没有效率。请展示你已经尝试过的