2016-07-26 144 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 –