2016-07-26 170 views
0

我已經看過其他職位同樣的問題,但我CAND找到我的問題的解決方案......PHP多維數組排序

我只是想解決這陣:

private $text = array(
    array(1, 'aa', '11'), 
    array(2, 'cc', '22'), 
    array(3, 'bb', '33') 
    ); 

但排序由第二個值,字符串。

我的代碼

class combo { 

    private $text = array(
    array(1, 'aa', '11'), 
    array(2, 'cc', '22'), 
    array(3, 'bb', '33') 
    ); 


    public function combo() { 

     //UPDATE WITH PERRYs ANSWER 
     usort($this->text, function ($a, $b) { 
      return $b[1] < $a[1]; 
     }); 

     $content='<div id="round">'. 
         '<div class="round1">'. 
           '<select>'; 
           for($i=0; $i<=3; $i++) 
           { 
            $content.= '<option value="' . utf8_encode($this->text[$i][0]) . '">' . utf8_encode($this->text[$i][1]) . '</option>'; 
           } 
           $content.='</select>'; 
         $content.='</div>';     
     $content.='</div>'; 
     return $content; 
    } 


} 

的感謝!

拉斐爾S.

+0

yes..the串...... 'AA', 'BB', 'CC' ...但我沒有列名... –

回答

1

您可以使用usort

usort($text, function ($a, $b) { 
    return $b[1] < $a[1]; 
}); 
+0

佩裏你能解釋一下你的答案? $ a和$ b是什麼? –

+0

當您使用函數對數組進行排序時,PHP會自動使用數組中的值爲該函數定義'$ a'和'$ b'。當你切換a和b時,你將從上升到下降,反之亦然。 '[1]'會從你的數組中獲得第二個值,在這種情況下是'aa','bb'和'cc'。 – Perry

+0

給我這個錯誤:解析錯誤:語法錯誤,行211中的意外T_FUNCTION –