|
Posted by Colin McKinnon on 01/29/07 21:10
benb wrote:
> <snip>
> $read = ldap_search($connect, $base_dn, $filter, $inforequired)
> $info = ldap_get_entries($connect, $read);
>
> This has returned an array (not sure of the type, is it multidimensional,
> or an array of arrays?) with 2 values:
>
> $info[$i]["displayname"][0]
> and
> $info[$i]["mobile"][0]
>
<snip>
>
> How do I go about sorting this array, so that [displayname] is
> alphabetical? I've tried using sort($info) but this seems to wipe the
> array, I've also tried sort($info[0]["displayname"]) but that doesn't seem
> to sort anything!
>
You'll need to write your own comparison function (not tested - YMMV):
function my_sort(&$a, &$b)
{
global $sort_by;
if ($a[$sort_by][0]==$b[$sort_by][0]) return 0;
return ($a[$sort_by][0]<$b[$sort_by][0]) ? -1 : 1;
}
$sort_by = 'displayname';
usort($info, 'my_sort');
// or if you prefer...
$sort_by = 'mobile';
usort($info, 'my_sort');
Note that you don't have to worry about iterating through th array yourself,
or having to code your own quicksort when you discover how slow a bubble
sort really is...etc.
HTH
C.
[Back to original message]
|