Справочник по PHP - [10]

Шрифт
Интервал

>}

>// Пусть $Files содержит массив с ключами - именами файлов

>// в текущем каталоге. Отсортируем его.

>uksort($Files,"FCmp"); //передаем функцию сортировки "по ссылке"


2 пример использования функции uksort():

>

>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($a)) {

> echo "$key: $valuen";

>}

?>

Этот пример выведет:

20: twenty10: ten4: four3: three

Функция поддерживается PHP 3 =3.0.4, PHP 4, PHP 5


usort


Пользоваетльская сортировка значений массива.

Синтаксис:

bool usort(array arr, callback cmp_function)

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

Эта функция как бы является "гибридом" функций uasort() и sort(). От sort() она отличается тем, что критерий сравнения обеспечивается пользовательской функцией. А от uasort() - тем, что она не сохраняет связей между ключами и значениями, а потому пригодна разве что для сортировки списков.

Пример использования функции usort():

>

>function cmp($a, $b)

>{

> if ($a == $b) {

> return 0;

> }

> return ($a < $b) ? -1 : 1;

>}


>$a = array(3, 2, 5, 6, 1);


>usort($a, "cmp");


>while (list($key, $value) = each($a)) {

> echo "$key: $valuen";

>}

?>

Пример одномерного массива:

>function cmp($a, $b) {

> if($a==$b) return 0;

> return ($a > $b) ? -1 : 1;

>}

>$a=array (3,2,5,6,1);

>usort($a, "cmp");

>while(list($key,$val)=each($a)) {

> echo "$key: $valn";

>}


При выполнении будет напечатано:

0: 61: 52: 33: 24: 1

Пример многомерного массива:

>function cmp($a,$b) {

> return strcmp($a["fruit"],$b["fruit"]);

>};

>$fruit[0]["fruit"]="lemons";

>$fruit[1]["fruit"]="apples";

>$fruit[2]["fruit"]="grapes";


>usort($fruit, "cmp");


>while(list($key,$val)=each($fruit)) {

> echo "$fruit[$key]:".$val["fruit"]."n";

>}


При сортировке многомерных массивов $a и $b содержит ссылки на первый индекс массива.

Будет напечатано:

$fruit[0]: apples$fruit[1]: grapes$fruit[2]: lemons

Если необходимо отсортировать массив с различными вторыми ключами, можно поступить следующим образом:

>

>function arr_sort($a,$b) {

> list($key1,$val)=each($a);

> list($key2,$val)=each($b);

> return strcmp($a[$key1],$b[$key2]);

>};


>$arr[0]["1-ый элемент"]="яблока";

>$arr[1]["2-ый элемент"]="груша";

>$arr[2]["3-ый элемент"]="персик";

>$arr[3]["4-ый элемент"]="дыня";

>$arr[4]["5-ый элемент"]="малина";

>$arr[5]["6-ый элемент"]="ананас";


>usort($arr,"arr_sort");


>echo "

";

>print_r($arr);

>echo "

";

?>

Приведенный скрипт выведет следующее:

Array( [0] => Array ( [6-ый элемент] => ананас ) [1] => Array ( [2-ый элемент] => груша ) [2] => Array ( [4-ый элемент] => дыня ) [3] => Array ( [5-ый элемент] => малина ) [4] => Array ( [3-ый элемент] => персик ) [5] => Array ( [1-ый элемент] => яблока ))

Функция поддерживается PHP 3 =3.0.3, PHP 4, PHP 5


array_multisort


Сортировка нескольких массивов или многомерного массива.

Синтаксис:

bool array_multisort(array ar1, [, mixed arg [, mixed ... [, array ...]]])

Функция array_multisort() сортирует сразу несколько массивов или многомерные массивы с сохранением индексной ассоциации, возвращая true при отсутствии ошибок.

Исходные массивы рассматриваются как столбцы таблицы, сортируемой построчно. Поэтому массивы должны иметь одинаковое число элементов, и взаимосвязь между ними, как в строках таблицы, сохраняется. Приоритетом сортировки пользуются первые массивы. Флаги сортировки могут указваться для каждого массива, и их действие распространяется только на тот массив, после которого они указаны.

Флаги определения порядка сортировки:

Флаги типа сортировки:

Уазание несколько флагов сортировки после одного массива недопустимо. Флаги сортировки, которые переются после аргумента arr применяются только к этому аргументу. Если после следующего аргумента флаги не указаны, то принимаются флаги по умолчанию (SORT_ASC, SORT_REGULAR).

Пример использования функции array_multisort():

Сортировка нескольких массивов

>ar1 = array("10", 100, 100, "a");

>ar2 = array(1, 3, "2", 1);

>array_multisort($ar1, $ar2);

> // $ar1 = array("10", "a", 100, 100);

> // $ar2 = array(1, 1, "2", 3);


Элементы второго массива, соответствующие одинаковым элементам (100 и 100) первого массива, также отсортированны.

Сортировка многомерного массива

>$ar = array(array("10", 100, 100, "a"), array(1, 3, "2", 1));

>array_multisort($ar[0], SORT_ASC, SORT_STRING,

> $ar[1], $SORT_NUMERIC, SORT_DESC);


>// $ar[0] = ("10", 100, 100, "a") - сортируются как строки по возрастанию

>// $ar[1] = (1, 3, "2", 1) - сортируются как числа по убыванию


Функция поддерживается PHP 4, PHP 5

Курсор массива


reset


Производит сброс курсора массива.

Синтаксис:

mixed reset(array arr)

Функция reset() устанавливает внутренний курсор массива arr на его начало и возвращает значение начального элемента.


Еще от автора Неизвестный Автор
Галчонок

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Сборник рассказов о порке

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Саньтии Веды Перуна

Саньтии Веды Перуна (Книга Мудрости Перуна) одно из древнейших Славяно-Арийских Священных Преданий, сохраненных Жрецами-хранителями Древнерусской Инглиистической церкви Православных Староверов-Инглингов.


Призраки ночи

В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.


Закат  вечности

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


Рекомендуем почитать
Детские инфекционные болезни

В данном справочнике представлены самые полные и актуальные сведения, касающиеся инфекционных заболеваний детей. Описаны причины возникновения и механизмы развития основных детских заболеваний. Дана их четкая классификация. Рассмотрены современные методы диагностики и лечения болезней. Полезными окажутся советы по укреплению иммунитета, профилактике и мерам предосторожности.Практические рекомендации специалистов и полезная информация помогут родителям вовремя распознать болезнь ребенка, принять своевременные меры по лечению, не допустить обострений и свести к минимуму вероятность заражения инфекционными заболеваниями в будущем.


Коммерческая электроэнергетика: словарь-справочник

Словарь-справочник содержит около 1500 терминов, определений и основных понятий, связанных с коммерческой деятельностью в области электроэнергетики, включая технические, технологические, экономические и гражданско-правовые аспекты. Все термины сопровождаются ссылками на соответствующие стандарты (использовано 55 государственных и международных стандартов), законодательные, нормативные правовые акты, нормативно-технические документы, справочники и другие источники.Словарь-справочник предназначен для руководителей и специалистов всех субъектов электроэнергетики, включая эксплуатационные, энергоснабжающие, проектные, научно-исследовательские, монтажно-наладочные организации, а также для персонала органов Ростехнадзора.


Чрезвычайные ситуации социального характера и защита от них

В пособии рассматривается социальная сфера жизнедеятельности человека и связанные с ней угрозы безопасности личности и обществу. Характеризуются чрезвычайные ситуации социального характера (военные, межэтнические, межконфессиональные конфликты, массовые беспорядки), а также способы защиты населения и территорий.Для студентов высших учебных заведений, обучающихся по специальности «Безопасность жизнедеятельности», а также для широкого круга специалистов.


Жилищный кодекс Российской Федерации

Принят Государственной Думой 22 декабря 2004 года Одобрен Советом Федерации 24 декабря 2004 года (в ред. Федеральных законов от 31.12.2005 N 199-ФЗ, от 18.12.2006 N 232-ФЗ, от 29.12.2006 N 250-ФЗ, от 29.12.2006 N 251-ФЗ, с изм., внесенными Федеральным законом от 29.12.2006 N 258-ФЗ)


Библиография Мира-цепи

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Телефонный компас

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.