LDAPAccountManager/lam/lib/3rdParty/composer/pear-pear.horde.org/Horde_Util/Horde/Array/Sort/Helper.php

78 lines
2.0 KiB
PHP

<?php
/**
* Helper class for sorting arrays on arbitrary criteria for usort/uasort.
*
* Copyright 2003-2017 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @author Marko Djukic <marko@oblo.com>
* @author Jan Schneider <jan@horde.org>
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Util
*/
class Horde_Array_Sort_Helper
{
/**
* The array key to sort by.
*
* @var string
*/
public $key;
/**
* Compare two associative arrays by the array key defined in self::$key.
*
* @param array $a
* @param array $b
*/
public function compare($a, $b)
{
return strcoll(Horde_String::lower($a[$this->key], true, 'UTF-8'), Horde_String::lower($b[$this->key], true, 'UTF-8'));
}
/**
* Compare, in reverse order, two associative arrays by the array key
* defined in self::$key.
*
* @param scalar $a TODO
* @param scalar $b TODO
*
* @return TODO
*/
public function reverseCompare($a, $b)
{
return strcoll(Horde_String::lower($b[$this->key], true, 'UTF-8'), Horde_String::lower($a[$this->key], true, 'UTF-8'));
}
/**
* Compare array keys case insensitively for uksort.
*
* @param scalar $a TODO
* @param scalar $b TODO
*
* @return TODO
*/
public function compareKeys($a, $b)
{
return strcoll(Horde_String::lower($a, true, 'UTF-8'), Horde_String::lower($b, true, 'UTF-8'));
}
/**
* Compare, in reverse order, array keys case insensitively for uksort.
*
* @param scalar $a TODO
* @param scalar $b TODO
*
* @return TODO
*/
public function reverseCompareKeys($a, $b)
{
return strcoll(Horde_String::lower($b, true, 'UTF-8'), Horde_String::lower($a, true, 'UTF-8'));
}
}