Method 1:
<?php
class TableSorter {
protected $column;
function __construct($column) {
$this->column = $column;
}
function sort($table) {
usort($table, array($this, 'compare'));
return $table;
}
function compare($a, $b) {
if ($a[$this->column] == $b[$this->column]) {
return 0;
}
return ($a[$this->column] < $b[$this->column]) ? -1 : 1;
}
}
$arr = array();
$arr[] = array('IBM', 'NYSE', 100);
$arr[] = array('MSFT', 'NASDAQ', 400);
$arr[] = array('GOOG', 'NASDAQ', 200);
$arr[] = array('AAPL', 'NASDAQ', 50);
$sorter = new TableSorter(2); // sort by third column
$arr = $sorter->sort($arr);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>Method 2:
<?php
$arr = $index = array();
$arr[] = array('IBM', 'NYSE', 100);
$arr[] = array('MSFT', 'NASDAQ', 400);
$arr[] = array('GOOG', 'NASDAQ', 200);
$arr[] = array('AAPL', 'NASDAQ', 50);
foreach ($arr as $key => $row) {
$index[$key] = $row[2];
// of course, replace 2 with whatever is the field's index
}
array_multisort($index, SORT_ASC, $arr);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>Reference: http://stackoverflow.com/questions/96759/how-do-i-sort-a-multidimensional-array-in-php
No comments:
Post a Comment