我们如何在多维数组中自定义数据排序

时间:2011-11-29 06:49:41

标签: php arrays sorting

  

可能重复:
  How do I sort a multidimensional array by one of the fields of the inner array in PHP?

我想知道,我们如何定制多维数组。该数组包含如下值: -

$products = array(
    array('John', '155', 10 ),
    array( 'Paul', '151', 95 ),
    array( 'Rodger', '152', 85 )
);

在第一个数组中,John是名称,155是ID,10是Price。如何按价格(从最高到最低)对整个数组进行排序,然后使用foreach循环打印数据?

1 个答案:

答案 0 :(得分:0)

您可以定义比较功能,并使用' usort'方法

见下面的例子。

<?php

// Comparison function
function cmp($a, $b) {
    if ($a[2] == $b[2]) {
        return 0;
    }
    return ($a[2] < $b[2]) ? -1 : 1;
}

// Array to be sorted
$products = array( array( 'John', '155', 10 ),
      array( 'Paul', '151', 95 ),
      array( 'Rodger', '152', 85 ) );

// Sort array
usort($products, 'cmp');

//Print the resulting array
foreach ($products as $key=>$item) {
    echo "Name : ".$item[0]. "  ID : " .$item[1]. "  Price : ".$item[2]. "\n";
}

?>