这是排序前的“月”数组:
array(3) { [2011]=> array(3) { [12]=> string(2) "12" ["04"]=> string(2) "04" ["01"]=> string(2) "01" } [2013]=> array(1) { [10]=> string(2) "10" } [2010]=> array(1) { ["05"]=> string(2) "05" } }
以下是排序后的“月”数组:
array(3) { [2011]=> array(3) { [12]=> string(2) "12" ["04"]=> string(2) "04" ["01"]=> string(2) "01" } [2010]=> array(1) { ["05"]=> string(2) "05" } [2013]=> array(1) { [10]=> string(2) "10" } }
这是我的代码:
var_dump($months);
foreach($months as $year => $month_array)
{
arsort($months[$year]);
}
arsort($days);
arsort($months);
arsort($years);
var_dump($months);
我希望以相反的顺序(2013年,2011年,2010年)生成年份
答案 0 :(得分:0)
使用ksort按键排序数组。
$a = array(
2001 => '2001',
2004 => '2004',
2009 => '2009',
);
ksort($a);
print_r($a);
output:
Array ( [2001] => 2001 [2004] => 2004 [2009] => 2009 )
使用krsort获取逆转顺序(这是您需要的)。
$a = array(
2001 => '2001',
2004 => '2004',
2009 => '2009',
);
krsort($a);
print_r($a);
output:
Array ( [2009] => 2009 [2004] => 2004 [2001] => 2001 )
答案 1 :(得分:0)
我认为你在错误的地方使用arsort它应该在foreach
arsort($months);
foreach($months as $key => $value)
{
echo $key . '=>' .$value;
}
答案 2 :(得分:0)
您应该通过DESC和Keys对数组进行排序。 使用
krsort($array);
开始使用php.net搜索。避免浪费时间是非常方便的事情
答案 3 :(得分:0)
要以相反的顺序获得年份,您应该将数组键(在您的情况下为年)放在一个单独的数组中,最后反向排序:
$years = array_keys( $months ); // => array( 2011, 2010, 2013 )
rsort( $years );
var_dump( $years ); // => array( 2013, 2011, 2010 )
如果您希望按年划分整个数组,请尝试 krsort :
krsort( $months );
var_dump( $months ); // => array( 2013 => array( ... ), 2011 => array( ... ), 2010 => array( ... ) );
另见:
http://nl3.php.net/manual/en/function.rsort.php
http://nl3.php.net/manual/en/function.krsort.php