Revision: 47182
Updated Code
at June 2, 2011 02:04 by beneberle
Updated Code
<?php
/**
*
* EXAMPLE #1
*
* sort array of objects based on specified attribute values
* in this case "lastname", followed by "firstname"
*
**/
$person1 = (object) array('lastname' => 'Jones', 'firstname' => 'Michael', 'Degree' => 'AAA');
$person2 = (object) array('lastname' => 'Adams', 'firstname' => 'Zach', 'Degree' => 'BB');
$person3 = (object) array('lastname' => 'Smith', 'firstname' => 'Jim', 'Degree' => 'CCC');
$person4 = (object) array('lastname' => 'Adams', 'firstname' => 'Tom', 'Degree' => 'DD');
$array_to_be_sorted = array( $person1, $person2, $person3, $person4);
echo "Before";
echo "<pre>";
print_r($array_to_be_sorted);
echo "</pre>";
echo "<br /><br />";
function alpha_sort($a, $b) {
if ($a->lastname == $b->lastname) {
return strnatcmp($a->firstname, $b->firstname);
}
return strnatcmp($a->lastname, $b->lastname);
}
usort($array_to_be_sorted, "alpha_sort");
echo "After";
echo "<pre>";
print_r($array_to_be_sorted);
echo "</pre>";
?>
<?php
/**
*
* EXAMPLE #2
*
* sort array of arrays based on specified array keys
* in this case "lastname", followed by "firstname"
*
**/
$array_to_be_sorted = array(
array('lastname' => 'Jones', 'firstname' => 'Michael'),
array('lastname' => 'Adams', 'firstname' => 'Zach'),
array('lastname' => 'Smith', 'firstname' => 'Jim'),
array('lastname' => 'Adams', 'firstname' => 'Tom')
);
function alpha_sort($a, $b) {
if ($a['lastname'] == $b['lastname']) {
return strnatcmp($a['firstname'], $b['firstname']);
}
return strnatcmp($a['lastname'], $b['lastname']);
}
usort($array_to_be_sorted, "alpha_sort");
echo "<pre>";
print_r($array_to_be_sorted);
echo "</pre>";
?>
Revision: 47181
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at June 2, 2011 02:03 by beneberle
Initial Code
<?php
/**
*
* EXAMPLE #1
*
* sort array of objects based on specified attribute values
* in this case "lastname", followed by "firstname"
*
**/
$person1 = (object) array('lastname' => 'Jones', 'firstname' => 'Michael', 'Degree' => 'AAA');
$person2 = (object) array('lastname' => 'Adams', 'firstname' => 'Zach', 'Degree' => 'BB');
$person3 = (object) array('lastname' => 'Smith', 'firstname' => 'Jim', 'Degree' => 'CCC');
$person4 = (object) array('lastname' => 'Adams', 'firstname' => 'Tom', 'Degree' => 'DD');
$array_to_be_sorted = array( $person1, $person2, $person3, $person4);
echo "Before";
echo "<pre>";
print_r($array_to_be_sorted);
echo "</pre>";
echo "<br /><br />";
function alpha_sort($a, $b) {
if ($a->lastname == $b->lastname) {
return strnatcmp($a->firstname, $b->firstname);
}
return strnatcmp($a->lastname, $b->lastname);
}
usort($array_to_be_sorted, "alpha_sort");
echo "After";
echo "<pre>";
print_r($array_to_be_sorted);
echo "</pre>";
?>
<?php
/**
*
* EXAMPLE #2
* sort array of arrays based on specified array keys
* in this case "lastname", followed by "firstname"
*
**/
$array_to_be_sorted = array(
array('lastname' => 'Jones', 'firstname' => 'Michael'),
array('lastname' => 'Adams', 'firstname' => 'Zach'),
array('lastname' => 'Smith', 'firstname' => 'Jim'),
array('lastname' => 'Adams', 'firstname' => 'Tom')
);
function alpha_sort($a, $b) {
if ($a['lastname'] == $b['lastname']) {
return strnatcmp($a['firstname'], $b['firstname']);
}
return strnatcmp($a['lastname'], $b['lastname']);
}
usort($array_to_be_sorted, "alpha_sort");
echo "<pre>";
print_r($array_to_be_sorted);
echo "</pre>";
?>
Initial URL
Initial Description
Initial Title
Multi-Dimensional Array/Object Sort using usort and custom comparison function
Initial Tags
php
Initial Language
PHP