2015-12-23 77 views
0

我有以下陣列:如何在PHP中按鍵升序排列數組?

$arr = array('XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); 

現在,使用的功能,我基於前一個下面的數組。當進行print_r($new_arr)pre標籤呼應它,這是輸出:

Array 
(
    [4] => l 
    [3] => m 
    [2] => s 
    [5] => xl 
    [1] => xs 
) 

不過,我試圖做到這一點:

Array 
(
    [1] => xs 
    [2] => s 
    [3] => m 
    [4] => l 
    [5] => xl 
) 

現在,我做了一些SO上搜索,發現關於ksort函數。在PHP文檔中進一步閱讀,表明這是一個使用的,但是當我使用ksort如下所示並回顯輸出時,我只獲得值1,而不是像我期望的那樣的值的數組以上第:

$sorted_arr = ksort($new_arr); 

pre標籤呼應$sorted_arr,這個是輸出(這只是一個號碼):

1 

我真的不知道什麼是錯在這裏。提前致謝。

+0

'ksort'不返回排序的數組,它對數組的引用起作用。你會發現你傳入的數組應該被排序。 –

+0

ksort對數組進行排序並返回true/false。你不必分配任何東西。 http://php.net/manual/en/function.ksort.php – aynber

回答

3

ksort返回一個布爾值而不是排序的數組。改爲輸出$new_arr變量。

+0

啊哈!我懂了。我不應該分配'ksort()'。謝謝 – nTuply

+0

@nTuply它發生在我們其他人身上。只要練習閱讀文檔並記下返回的值,你就會好起來的。祝你好運,快樂發展! –

0

如果您通過文檔here。你會發現ksort返回TRUE成功或FALSE失敗。相反,打印$new_arr作爲參考ksort()

0

你在找什麼是krsort功能。

請注意,函數對輸入數組進行排序,而不是返回排序後的版本。返回值是一個布爾值,只是表示成功或失敗。