2011-04-05 56 views
0

我想根據它的一個值對PHP中的多維數組進行排序。php - 多值數組排序基於它的值

例如

$shop = array(array("rose", 3 , 'rr'), 
       array("daisy", 1 , 'dd'), 
       array("orchid", 2 , 'oo') 
      ); 

我要作爲排序依據3,1,2這個數組。即我想將這個陣列排序到

$shop = array(array("daisy", 1 , 'dd'), 
       array("orchid", 2 , 'oo'), 
       array("rose", 3 , 'rr') 
      ); 

請任何人幫我! PHP中是否有任何功能來做到這一點?

+0

可能重複http://stackoverflow.com/questions/4508145/sort-php-multidimensional-array-by -sub值) – 2011-04-05 12:19:04

回答

0

不是很正確的,但你可能會得到一個線索形式asort功能

<?php asort($shop)?> 
0

排序多維數組(使用在array_multisort

$ar = array(
     array("10", 11, 100, 100, "a"), 
     array( 1, 2, "2", 3, 1) 
    ); 
array_multisort($ar[0], SORT_ASC, SORT_STRING, 
       $ar[1], SORT_NUMERIC, SORT_DESC); 
var_dump($ar); 

在此示例中,排序後,第一個數組將轉換爲「10」,100,100,11,「a」(它按升序排序爲字符串)。第二個將包含1,3,「2」,2,1(按數字排序,按降序排列)。

array(2) { 
    [0]=> array(5) { 
    [0]=> string(2) "10" 
    [1]=> int(100) 
    [2]=> int(100) 
    [3]=> int(11) 
    [4]=> string(1) "a" 
    } 
    [1]=> array(5) { 
    [0]=> int(1) 
    [1]=> int(3) 
    [2]=> string(1) "2" 
    [3]=> int(2) 
    [4]=> int(1) 
    } 
} 

http://php.net/manual/en/function.array-multisort.php

[由子值排序的PHP多維數組(的