2014-10-31 164 views
0

我如何排序“award_year”,其中所有其他键将按照排序顺序。除“award_year”之外的所有关键字名称以及总密钥也会有所不同?多维数组排序

array(7) { 
     ["award_year"]=> 
     array(2) { 
     [0]=> 
     string(7) "1999-01" 
     [1]=> 
     string(7) "2010-02" 
     } 
     ["award_title_user"]=> 
     array(2) { 
     [0]=> 
     string(1) "2" 
     [1]=> 
     string(2) "tt" 
     } 
     ["award_description_user"]=> 
     array(2) { 
     [0]=> 
     string(1) "2" 
     [1]=> 
     string(3) "ddd" 
     } 
     ["award_title_lang1"]=> 
     array(2) { 
     [0]=> 
     string(2) "ms" 
     [1]=> 
     string(3) "ms2" 
     } 
     ["award_description_lang1"]=> 
     array(2) { 
     [0]=> 
     string(2) "ms" 
     [1]=> 
     string(3) "ms2" 
     } 
    } 

请指教。

+0

,我已经发布的您question.Please检查和让我知道,如果你还有其他问题的答案! – 2014-10-31 10:28:45

回答

0

也许不是最快的方法,但是:

sort($arrayin['award_year']); 
$arrayout = array(); 
foreach($arrayin["award_year"] as $key => $value){ 
    array_push($arrayout['award_year'], $array_in['award_year'][$key]); 
    array_push($arrayout['award_title_user'], $array_in['award_title_user'][$key]); 
    //etc 
} 
+0

这不是好的方法。如果数组包含超过千个元素,那么它的加载非常缓慢。而且如果PHP提供了相同的功能,那么不需要手动完成。希望你能理解场景。 – 2014-10-31 10:30:42

+0

我正在使用这个:array_multisort($ awards ['award_year'],SORT_DESC,$ awards ['award_title_user'],$ awards ['award_description_user']);但后来因为我不知道关键名称或总金额,我现在不能使用它。 – 2014-10-31 10:36:46

0

为PHP 5.3:

//Sample Multi-dimensional Array ($myArray) 
Array 
(
    [0] => Array 
     (
      [award_year]  => 2012 
      [award_title_user] => test2 
     ) 

    [1] => Array 
     (
      [award_year]  => 2011 
      [award_title_user] => test1 
     ) 

) 

usort($myArray, function($a, $b) { 
    return $a['award_year'] - $b['award_year']; 
}); 

print_r($myArray); 
+0

使用此方法删除了所有密钥 – 2014-10-31 10:35:02

+0

@AnilAstrio,您正在使用哪个PHP版本?你也可以请你提供你的实际数组? – 2014-10-31 10:36:21

+0

我已经实现它在我的最后工作正常!此外,我编辑了我的答案,并将相同的代码放在本地实施。 – 2014-10-31 10:42:01