2012-03-26 82 views
0

排序多维数组我有这样的谁拥有指数

Array 
(
    [0] => Array 
    (
     [UnitESN] => 14296 
     [ScanNo] => 1 
     [ScanDate] => Nov 21 
     [ScanTime] => 10:15 AM 
     [Qualifiers] => 
     [Notes] => 
     [BadgeData] => Array 
      (
       [0] => HEATH--- 
       [1] => MCCU---- 
       [2] => HER--- 
       [3] => [email protected] 
       [4] => 
       [5] => 393 
       [6] => 13350 
       [7] => 
       [8] => 
       [9] => 111 
      ) 

     [Signal] => +00/000 
     [ConnectionDelay] => 0407 
    ) 

    [1] => Array 

数组等等......我想订购ASC或DESC ......让我们在第8栏说和Col 8项数7 (8-1,因为它从零开始)在BadgeData中,有什么想法?我尝试array_multisort但没有成功。

感谢

+2

在我看来,你正在寻找['uasort'](http://ca2.php.net/uasort)。 – 2012-03-26 17:02:06

+0

[按照子值排序php多维数组]的可能重复(http://stackoverflow.com/questions/4508145/sort-php-multidimensional-array-by-sub-value) – Jon 2012-03-26 17:07:42

+0

如果你想要的信贷弗朗索瓦,post一个答案。我找到了! @Jon:在你的“重复”中不是正确的答案 – 2012-03-26 17:08:40

回答

1

我很高兴你想通了。这是我在被打断前开始写的东西。

基本uasort例子:

<?php 

function cmp($a, $b) { 
    if ($a['BadgeData'][7] == $b['BadgeData'][7]) { 
     return 0; 
    } 
    // Ascending 
    return ($a['BadgeData'][7] < $b['BadgeData'][7]) ? -1 : 1; 
} 

// Order the values of the array based on the value in BadgeData[7] in ascending order.. 
uasort($array, 'cmp'); 

它看起来像我可能虽然误解你原来的问题,我还以为你要由值数组中BadgeData[7]排序,但好像你想整理每个数组值的BadgeData。

+0

我有一个数组[0] => [1] =>等...直到1000 ...每个数组都有一个名为BadgeData的行。在该行内部,有一个名为[0],[1],[2]等的数组,它可以是[2],有时它可以是[50000]取决于它是什么...所以我需要以此来排序。 [1]可以持有姓名或电话,甚至地址,这就是为什么......但非常感谢,我标记你的答案。 – 2012-03-26 17:35:17

1

由于@Francois Deschenes引领我在正确的答案。这里是我的发现:

http://ca2.php.net/manual/en/function.uasort.php#104714

我编辑,以适合我的需要。谢谢 !

function SortArrayByCol(array $Array, $Key, $ASC=true, $Col=0) { 
    $Result = array(); 

    $Values = array(); 
    foreach($Array as $ID => $Value){ 
     $Values[$ID] = isset($Value[$Key][$Col]) ? $Value[$Key][$Col] : null; 
    } 

    if($ASC){ 
     asort($Values); 
    } else { 
     arsort($Values); 
    } 

    foreach($Values as $Key => $Value) { 
     $Result[$Key] = $Array[$Key]; 
    } 

    return $Result; 
} 
相关问题