2016-12-30 40 views
-2

下面有一个哈希数组的PHP数组。想根据索引对其进行排序。数组应该按照arr [0],arr [1],arr [18],arr[22]排列。而不是 arr[0],arr[1],arr[22]arr[18]。希望排序基于数组索引,而不是基于数组中的散列。我该怎么做。尝试了asort它没有正常工作。基于索引的PHP排序哈希阵列

php > $arr=array(); 
php > $arr[0]['callbacks']=10; 
php > $arr[0]['preview']=11; 
php > $arr[0]['Dialer']=12; 
php > $arr[1]['callbacks']=20; 
php > $arr[1]['preview']=21; 
php > $arr[1]['Dialer']=22; 

php > $arr[22]['callbacks']=210; 
php > $arr[22]['preview']=208; 
php > $arr[22]['Dialer']=222; 
php > $arr[18]['callbacks']=210; 
php > $arr[18]['Dialer']=222; 
php > $arr[18]['preview']=208; 
php > print_r($arr); 
Array 
(
    [0] => Array 
     (
      [callbacks] => 10 
      [preview] => 11 
      [Dialer] => 12 
     ) 

    [1] => Array 
     (
      [callbacks] => 20 
      [preview] => 21 
      [Dialer] => 22 
     ) 

    [22] => Array 
     (
      [callbacks] => 210 
      [preview] => 208 
      [Dialer] => 222 
     ) 

    [18] => Array 
     (
      [callbacks] => 210 
      [Dialer] => 222 
      [preview] => 208 
     ) 

) 
php > 

回答

2

您可以ksort($arr);

+0

非常感谢信息 – Arav

1

@Arav排序呢你为什么不尝试ksort() PHP函数将根据主要的像下面的排序数组:

<?php 
    $arr=array(); 
    $arr[0]['callbacks']=10; 
    $arr[0]['preview']=11; 
    $arr[0]['Dialer']=12; 
    $arr[1]['callbacks']=20; 
    $arr[1]['preview']=21; 
    $arr[1]['Dialer']=22; 

    $arr[22]['callbacks']=210; 
    $arr[22]['preview']=208; 
    $arr[22]['Dialer']=222; 
    $arr[18]['callbacks']=210; 
    $arr[18]['Dialer']=222; 
    $arr[18]['preview']=208; 
    ksort($arr); 
    print_r($arr); 

?> 

它会根据排序键入升序,如果你想降序,所以你可以使用krsort()function (y)

+1

非常感谢您的信息 – Arav