2015-08-28 156 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阵列功能