我是这个阵列:
[0] => Array
(
[0] => 0
[1] => 1
)
[1] => Array
(
[0] => 3
[1] => 4
)
[2] => Array
(
[0] => 2
)
我需要对值进行排序以获得一个数组,按单个数组值排序,如:
[0] => Array
(
[0] => 0
[1] => 1
)
[2] => Array
(
[0] => 2
)
[1] => Array
(
[0] => 3
[1] => 4
)
值(0,1,2,3,4)是唯一的,代表星期几,因此,我最多可以有7个唯一值。
我尝试过使用但没有成功。有任何想法吗? 非常感谢
答案 0 :(得分:2)
这取决于您希望如何对数组进行排序。在您的示例中,您将第二级数组从低到高排序,然后将第一级数组按第二级数组中的最低值排序,因此我将假设您喜欢的是这样。
你可以用usort做这种事情,但我发现只使用asort()和更多的代码有助于提高可读性。
//Setup variables
$start_array = array( array(0,1), array(3,4), array(2));
$lowest_value = array();
$sorted_array = array();
//Sort your inner arrays and build up a list of lowest values
foreach($start_array as $key => $inner_array) {
sort($start_array[$key]);
$lowest_value[$key] = $start_array[$key][0];
}
//Iterate over your lowest values and map to your new array
asort($lowest_value);
foreach($lowest_value as $key => $value){
$sorted_array[] = $start_array[$key];
}
请注意,这假设您希望您的第一级数组按第二级最低值排序。您可以使用行$lowest_value[$key] = $start_array[$key][0];
来改变它,而不是抓住内部数组的平均值,最高值,无论您想要什么。