2011-04-05 72 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多维数组(的