2014-02-18 5 views
2

Я хочу отсортировать результаты по новому массиву, но без ключа $ , поэтому самым UNunic-номером будет первым (или самый дублированный номер будет первым).сортировать результаты значений массива в новый массив

<?php 

$a = array (1,1,2,2,2,3,3,3,3,4,4,4,4,4,5); 

foreach (array_count_values($a) as $key => $value) { 
     echo $key.' - '.$value.'<br>'; 
} 

//I am expecting to get the most duplicated number FIRST (without the $key) 
//so in that case : 
// $newarray = array(4,3,2,1,5); 
?> 
+0

Что вы имеете в виду _without в $ KEY_? Есть 4,3,2,1,5 ключи нового массива? –

+0

iow ... Результаты нового массива будут следующими: $ newarray = array (4,3,2,1,5); Спасибо! –

ответ

1
$a = array (1,1,2,2,2,3,3,3,3,4,4,4,4,4,5); 

$totals = array_count_values($a); 

arsort($totals); 

echo "<pre>"; 
print_r($totals); 

Выход

Array 
(
    [4] => 5 
    [3] => 4 
    [2] => 3 
    [1] => 2 
    [5] => 1 
) 
+0

Это работает, но мне было интересно, если есть более короткий метод :) –

+0

Так лучше? Возможно, сортировка может быть выполнена в одной строке. Не уверен. –

+0

@ user3301364, My ** + 1 ** Это самый короткий способ, который он может получить! –

0
$newarray = array_keys(array_count_values($a)); 
+0

$ a = массив (1,1,2,2,2,3,3,3,3,4,4,4,4,4,4,5); foreach (array_keys (array_count_values ​​($ a)) как $ key => $ value) { echo $ value. '
'; } // это не то, что я ожидал получить 0 1 2 3 4 –

+0

Вы хотели новый массив не печатает его ;-D –

1

ли как этот

<?php 
$a = array (1,1,2,2,2,3,3,3,3,4,4,4,4,4,5,6,7,8,9); 
$n=array_count_values($a); 
arsort($n); 
print_r(array_keys($n)); 

Demo

ВЫХОД:

Array 
(
    [0] => 4 
    [1] => 3 
    [2] => 2 
    [3] => 1 
    [4] => 9 
    [5] => 8 
    [6] => 5 
    [7] => 6 
    [8] => 7 
) 
+1

// заменить на эту строку // $ a = array (1,1,2,2,2,3,3,3,3,4,4,4,4,4,5,6,7,8 , 9); // Я не получаю значения 7,8,9 –

+0

@ user3301364 Вы можете попробовать свой вход в ссылку Demo, предоставленную Намби. –

+0

Посмотрите: https://eval.in/102648 –

Смежные вопросы