MediaWiki REL1_28
|
A collection of static methods to play with arrays. More...
Static Public Member Functions | |
static | arrayDiffAssocRecursive ( $array1) |
Do array_diff_assoc() on multi-dimensional arrays. | |
static | consistentHashSort (&$array, $key, $separator="\000") |
Sort the given array in a pseudo-random order which depends only on the given key and each element value in $array. | |
static | findLowerBound ( $valueCallback, $valueCount, $comparisonCallback, $target) |
Do a binary search, and return the index of the largest item that sorts less than or equal to the target value. | |
static | pickRandom ( $weights) |
Given an array of non-normalised probabilities, this function will select an element and return the appropriate key. | |
A collection of static methods to play with arrays.
Definition at line 28 of file ArrayUtils.php.
|
static |
Do array_diff_assoc() on multi-dimensional arrays.
Note: empty arrays are removed.
array | $array1 | The array to compare from |
array | $array2,... | More arrays to compare against |
Definition at line 158 of file ArrayUtils.php.
|
static |
Sort the given array in a pseudo-random order which depends only on the given key and each element value in $array.
This is typically used for load balancing between servers each with a local cache.
Keys are preserved. The input array is modified in place.
Note: Benchmarking on PHP 5.3 and 5.4 indicates that for small strings, md5() is only 10% slower than hash('joaat',...) etc., since the function call overhead dominates. So there's not much justification for breaking compatibility with installations compiled with ./configure –disable-hash.
array | $array | Array to sort |
string | $key | |
string | $separator | A separator used to delimit the array elements and the key. This can be chosen to provide backwards compatibility with various consistent hash implementations that existed before this function was introduced. |
Definition at line 49 of file ArrayUtils.php.
References $hashes, as, and use.
Referenced by RedisBagOStuff\getConnection(), PoolCounterRedis\getConnection(), and SqlBagOStuff\getTableByKey().
|
static |
Do a binary search, and return the index of the largest item that sorts less than or equal to the target value.
callable | $valueCallback | A function to call to get the value with a given array index. |
int | $valueCount | The number of items accessible via $valueCallback, indexed from 0 to $valueCount - 1 |
callable | $comparisonCallback | A callback to compare two values, returning -1, 0 or 1 in the style of strcmp(). |
string | $target | The target value to find. |
Definition at line 112 of file ArrayUtils.php.
Referenced by IcuCollation\getFirstLetter(), and ArrayUtilsTest\testFindLowerBound().
|
static |
Given an array of non-normalised probabilities, this function will select an element and return the appropriate key.
array | $weights |
Definition at line 66 of file ArrayUtils.php.
References as.
Referenced by JobQueueFederated\doPop(), LoadBalancer\getRandomNonLagged(), LoadBalancer\getReaderIndex(), JobQueueFederated\tryJobInsertions(), and LoadBalancer\waitForOne().