2017-03-08 16 views
0

Here私のコードです:array_count_values()の結果をどのようにソートできますか?

<?php 
$array = array("world", 1, "hello", 1, "hello", "hello", "how"); 
$new_array = array_count_values($array); 
print_r($new_array); 
?> 

/* Output: 
Array 
(
    [world] => 1 
    [1] => 2 
    [hello] => 3 
    [how] => 1 
) 

今、私は新しい配列の値に基づいて結果をソートします。これは期待される出力です:

/* Expected Output: 
Array 
(
    [hello] => 3 
    [1] => 2 
    [world] => 1 
    [how] => 1 
) 

どうすればいいですか?

注:同じ値の順序は関係ありません。

+1

アソートを試すhttp://php.net/manual/en/function.asort.php OR arsort http://php.net/manual/en/function.arsort.php – Ima

+0

arsort()を使って配列をソートするその値によって – JYoThI

答えて

5

あなたは、その値で配列をソートするarsort()を利用することができます:

出力します
<?php 
$array = array("world", 1, "hello", 1, "hello", "hello", "how"); 
$new_array = array_count_values($array); 
arsort($new_array, SORT_NUMERIC); 
print_r($new_array); 
?> 

Array 
(
    [hello] => 3 
    [1] => 2 
    [world] => 1 
    [how] => 1 
) 
+0

ありがとう.. upvote。ちょうど私がなぜ[それは** ascとして分類されるのかわからない](https://i.stack.imgur.com/GspqI.png)。どうすれば** desc **にすることができますか? – stack

+0

申し訳ありませんが、コードの入力ミスです。 'arsort()'でなければなりません。 – Raptor

0

嘆願がためarsort($new_array);を使用

<?php 

    $array = array("world", 1, "hello", 1, "hello", "hello", "how"); 

    $new_array = array_count_values($array); 
    asort($new_array); 
    print_r($new_array);  
0

コードの下にしてみてください降順で並べ替え、昇順にasort($new_array);を並べ替え

関連する問題