2016-07-15 135 views
-1

我有像這樣數組排序基於價值

array:2 [▼ 
    "folder1" => array:3 [▼ 
    1 => "d1_2.png" 
    2 => "d1_1.png" 
    3 => "d1_3.png" 
    ] 
    "folder2" => array:3 [▼ 
    0 => "d2_2.png" 
    1 => "d2_3.png" 
    3 => "d2_1.png" 
    ] 
] 

數組我所要做的排序是這個數組基於價值。所以輸出應該是這樣的

array:2 [▼ 
    "folder1" => array:3 [▼ 
    0 => "d1_1.png" 
    1 => "d1_2.png" 
    2 => "d1_3.png" 
    ] 
    "folder2" => array:3 [▼ 
    0 => "d1_1.png" 
    1 => "d1_2.png" 
    2 => "d1_3.png" 
    ] 
] 

所有的例子我已經排序基於密鑰值觀察,但我沒有鑰匙。我已經嘗試了幾種排序函數,但是他們都沒有對數組進行排序。

如何根據我擁有的數組對其進行排序?

感謝

+0

對不起,我的意思是,我的鍵索引,不是代表。 –

+0

請關注評論。 – Oli

回答

1

還有的sorting functions in php一個龐大的數字,它可以排序基於值或密鑰的陣列,保持索引關係,走進孩子的陣列。

我想你想的是sort功能,像這樣:

sort($array['folder1']); 
sort($array['folder2']); 

或者這樣:

foreach ($array as $key => $subarray) { 
    sort($array[$key]); 
} 

只要記住。它不是您想要排序的外部數組,而是它的子數組。

+0

因爲我不知道文件夾名稱,所以我需要使用第二個選項。如果我輸出子陣列,我可以看到它的工作原理。但是,它似乎並沒有將排序的子數組添加回原始數組。 –

+0

請注意,我更新了我的答案。只是做一個'sort($ subarray)'只會對子數組的一個副本進行排序。你實際上必須做一個'sort($ array [$ key])',而不是更新的答案。 –

+0

完美,這正是我所尋找的。謝謝 –

1

您可以使用此功能:

asort() - sort associative arrays in ascending order, according to the value 
+0

這實際上是我嘗試過的一個功能,但它似乎沒有對它進行排序,因爲我認爲它正在對folder1和folder2進行排序。 –