Учебник по основам PHP. PHPBeginner


Массивы - часть 16


См. также: usort(), uksort(), sort(), asort(), arsort(), ksort() и rsort().

uksort

Пользовательская сортировка массива по индексам

void uksort (array array, function cmp_function)

Сортирует массив arr по индексам с сохранением индексных ассоциации, используя для сравнения индексов элементов пользовательскую функцию, указанную аргументом cmp_function. В эту функцию передаются два сравниваемых индекса элементов, а она в свою очередь должна вернуть положительное или отрицательное число или 0.

function cmp ($a. $b) { if ($a == $b) return 0; return ($a > $b) ? -1 / 1; } $a = array (4 => "four". 3 => "three". 20 => "twenty". 10 => "ten"). uksort ($a. "cmp"). while (list ($key. $value) = each (Sa)) { echo "$key: $value\n". }

Напечатано будет:

20 twenty 10 ten 4: four 3: three

См. также: usort(), uasort(), sort(), asort(), arsort(), ksort(), natsort() и rsort(),

usort

Пользовательская сортировка массива

void usort (array array, string cmp_function)

Сортирует массив агг с сохранением индексных ассоциаций, используя для сравнения значения элементов пользовательскую функцию, указанную аргументом cmp_function. В эту функцию передаются два сравниваемых значения элементов, а она в свою очередь должна вернуть положительное или отрицательное число или 0.

См. пример использования с функцией create_function().

//Пример 1. function cmp ($a, $b) { if ($a == $b) return 0; return ($a > $b) ? -1 : 1; } $а = array (3. 2. 5. 6, 1). usort {$a. "cmp"): while (list ($key. Svalue) each ($a)) { echo "Skey: Jva1ue\n": }

В этом примере будет напечатано:

0: 6 1: 5 2: 3 3 :2 4 :1//Пример 2" многомерный массив function cmp ($а. $b) {

return stranp($a["fruit"],$b["fruit"]); } $fruits[0]["fruit"] - "lemons"; $fruits[l]L"fruit"l = "apoles": $fruits[2]["frun"] - "grapes": usort($Truits. "cmp"); while (list ($key, Svalue) = each (Sfruits)) { echo "\$fruits[$key]: " . $value["fruit"] . "\n": }




Начало  Назад  Вперед



Книжный магазин