我有一个像这样的数组
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 :(得分:1)
您可以使用此功能:
asort() - sort associative arrays in ascending order, according to the value
答案 1 :(得分:1)
有大量sorting functions in php,它可以根据值或键对数组进行排序,维护索引关联并进入子数组。
我认为你想要的是sort功能,如下所示:
sort($array['folder1']);
sort($array['folder2']);
或者这个:
foreach ($array as $key => $subarray) {
sort($array[$key]);
}
请记住。它不是您想要排序的外部数组,而是它的子数组。
答案 2 :(得分:1)
使用array_walk
(foreach的功能方式)遍历外部数组,然后使用sort
http://php.net/manual/en/function.array-walk.php
http://php.net/manual/en/function.sort.php
$arr = array(
"folder1" => array(
"1" => "d1_2",
"2" => "d1_1",
"3" => "d1_3"
),
"folder2" => array(
"1" => "d2_3",
"2" => "d2_1",
"3" => "d2_2"
)
);
var_dump($arr);
array_walk($arr, function (&$e) {
sort($e);
});
var_dump($arr);