2015-08-28 125 views
-2

我有一個ID:名稱數組排序字符串數組與PHP

例如:

$datas = array(); 
$datas[2345] = "Banana"; 
$datas[5740] = "Apple"; 
$datas[98763]= "Orange"; 

我最終卻是數組按字母順序排序。

var_dump($datas); 
//"4536" => "Apple", "2345" => Banana", "98763" => "Orange" 

我嘗試用usort,但它不工作。

usort($datas, function ($a, $b) { 
      return strcasecmp($a,$b); 
     }); 

如何按字母順序排列數組之王?

+1

'asort'怎麼樣? – Script47

+1

簡單的'asort' ... –

+0

究竟是什麼「不工作」? – deceze

回答

1

使用asort()

請參閱Array Functions

<?php 
    $datas = array(); 
    $datas[2345] = "Banana"; 
    $datas[5740] = "Apple"; 
    $datas[98763]= "Orange"; 

    asort($datas); 

    print_r($datas); 
    //Array ([5740] => Apple [2345] => Banana [98763] => Orange) 
2

你甚至都不需要usort只需使用asort

asort($datas); 

或者你可以簡單地使用uasort代替usort,因爲你需要有你鑰匙也如此簡單使用

uasort($datas,'strcasecmp'); 
1

asort就是你要找的,它會按字母順序排列,如下圖所示。

$datas = array(); 
$datas[2345] = "Banana"; 
$datas[5740] = "Apple"; 
$datas[98763]= "Orange"; 

asort($datas); 

var_dump($datas); 

array(3) { [5740]=> string(5) "Apple" [2345]=> string(6) "Banana" [98763]=> string(6) "Orange" } 
1
asort(); 

From PHP Manual

此函數對一個數組,使得數組的索引保持與它們相關聯的數組元素的 相關性。在排序關聯數組時,主要用於 ,其中實際元素 的順序很重要。

$datas = array(); 
$datas[2345] = "Banana"; 
$datas[5740] = "Apple"; 
$datas[98763]= "Orange"; 

asort($datas); 

現在,當你想看到var_dump($datas);輸出,你會看到:

array(3) {[5740]=> string(5) "Apple" [2345]=> string(6) "Banana" [98763]=> string(6) "Orange"} 
從PHP陣列功能