可能重复:
在PHP中,如何根据内部数组的一个字段对多维数组进行排序?
我想知道,我们如何自定义排序一个多维数组。数组包含以下值:-
$products = array(
array('John', '155', 10 ),
array( 'Paul', '151', 95 ),
array( 'Rodger', '152', 85 )
);
在第一个数组中,John是名称,155是ID,10是价格。如何按价格(从最高到最低(对整个数组进行排序,然后使用foreach
循环打印数据?
您可以定义比较函数,并使用"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";
}
?>