2013-01-04 17 views
0

時,這是我的代碼rsort呼應array_count_values

rsort($count_bit); 
foreach (array_count_values($count_bit) as $bit => $nums) 
{ 
echo "<tr><td width='90%'>Version: " . $bit . "</td><td>" . $nums . "</td></tr>"; 
} 

呼應出隨機的順序,我認爲它因爲它排序,後來通過array_count_values運行,因此它其實這我需要排序的$ count_bit:array_count_values ($ count_bit),而不是$ count_bit,我試圖

foreach (rsort(array_count_values($count_bit)) as $bit => $nums) 

,但沒有工作,我想過也做

$count_bit1 = new array($count_bit); 
rsort($count_bit1); 

但後來當我回應出$位顯示爲1,2,3,4,5,6,7,8並失去了它的獨特價值。任何想法

的什麼即時處理是這樣的任何實例:

Version: 665 14 
Version: 645 1 
Version: 660 5 
Version: 651 1 
Version: 662 1 
Version: 649 1 

,我希望它顯示14,5,1,1,1,1不是隨機喜歡它

$位呼應出的版本號和$ NUMS呼應了它原本的環

回答

0

多少是版本號的發現試試這個功能,你的排序數組:

它需要3個參數:

1)你想排序的數組。 2)您想要對該數組進行排序的索引。 3)排序順序(SORT_ASC或SORT_DESC)

您可以撥打這個是這樣的:

array_sort($array, 'array_index', SORT_DESC);

返回的結果不分配到任何變量或數組。它會自動對該數組進行排序,並將新的排序數組分配給相同的數組變量。

 
function array_sort($array, $sort_by, $order=SORT_ASC) 
    { 
     $new_array = array(); 
     $sortable_array = array(); 

     if (count($array) > 0) { 
      foreach ($array as $k => $v) { 
       if (is_array($v)) { 
        foreach ($v as $k2 => $v2) { 
         if ($k2 == $on) { 
          $sortable_array[$k] = strtolower($v2); 
         } 
        } 
       } else { 
        $sortable_array[$k] = strtolower($v); 
       } 
      } 

      switch ($order) { 
       case SORT_ASC: 
        asort($sortable_array); 
       break; 
       case SORT_DESC: 
        arsort($sortable_array); 
       break; 
      } 

      foreach ($sortable_array as $k => $v) { 
       $new_array[$k] = $array[$k]; 
      } 
     } 

     return $new_array; 
    } 
1

您的邏輯順序是關閉的。

在第一個示例中,您對數組進行排序,然後使用array_count_value創建一個新數組(未排序)。

在你的第二步中,在foreach循環中使用的返回值爲rsortrsort返回一個布爾值。

您需要使用arsort,因爲它維護數組的索引,而rsort在進行排序時以數字形式重新鍵入數組。這就是爲什麼你的「版本」變成遞增的數字。

PHP

$new_array = array_count_values($count_bit); 
arsort($new_array); 
foreach($new_array as $bit => $nums) 
{ 
    // Output your html with your values here 
    echo sprintf("Version: %s > Count: %s\n", $bit, $nums); 
} 

輸出(我自己的陣列示例)

Version: 665 > Count: 11 
Version: 660 > Count: 2 
Version: 662 > Count: 1 
Version: 645 > Count: 1 
Version: 642 > Count: 1