<?php
/**
* Example of sorting array of objects
*
*/
//test data
$ar = array();
$o = new stdClass();
$o->name = 'Terry';
$o->surname = 'Cook';
$o->addr = new stdClass();
$o->addr->street = 'ABBAY ROAD';
$o->addr->no = '10';
$o->salary = 25000;
$ar[0] = $o;
$o = new stdClass();
$o->name = 'Anna';
$o->surname = 'Smith';
$o->addr = new stdClass();
$o->addr->street = 'STREATHAM PLACE';
$o->addr->no = '1';
$o->salary = 15000;
$ar[1] = $o;
$o = new stdClass();
$o->name = 'John';
$o->surname = 'Doe';
$o->addr = new stdClass();
$o->addr->street = 'GAUNT STREET';
$o->addr->no = '101';
$o->salary = 30000;
$ar[2] = $o;
require('sorter.php');
//initialize sorter
$oSorter = new ArraySorter();
//set data to sort
$oSorter->setArray($ar);
echo "<pre>";
//sort by addr street ascending
print_r($oSorter->sort('addr.street', ArraySorter::DIRECTION_ASC));
echo '<hr />';
//sort by salary descending
print_r($oSorter->sort('salary', ArraySorter::DIRECTION_DESC));
|