php - 基于其值的多维数组排序

时间:2011-04-05 12:12:17

标签: php sorting

我想根据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中是否有任何功能可以执行此操作?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

这不是很正确,但你可能会得到asort函数

的线索
<?php asort($shop)?>

答案 2 :(得分: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