2016-03-14 49 views
0

例如,我有一個這樣的字符串。基於X值的計數和字母表重新排列陣列

d,b,a,a,b,a,c 

有3 '',2 'B',1 'd',1 'C'

然後我爆炸它:

[0] => d 
[1] => b 
[2] => a 
[3] => a 
[4] => b 
[5] => a 
[6] => c 

array_unique(數組)讓我這樣的:

[0] => d 
[1] => b 
[2] => a 
[3] => c 

我需要的:

[0] => a 
[1] => b 
[2] => c 
[3] => d 

0 => a because there was 3 a in array. 
1 => b because there was 2 b in array. 
2 => c because there was 1 c in array. c is equal to d but it comes earlier in alphabet. 
3 => d because there was 1 c in array. 

對不起,英文破碎。

+1

我沒有時間來寫一個完整的答案,但通過查看PHP的'array_count_values()'函數開始。這將幫助您計算每個值的出現次數,然後您可以對此進行排序。 – jszobody

回答

1

聽起來你正在尋找沿着這些路線的解決方案......

<?php 
    $sampleString = "d,b,b,a,a,b,a,b,c"; 
    $sampleArray = explode(",",$sampleString); 
    $arrayCounts = array_count_values($sampleArray); 
    arsort($arrayCounts); 
    $finalArray = array_keys($arrayCounts); 
    print_r($finalArray); 
?> 
+0

非常感謝! –