Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
масиви.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
100.86 Кб
Скачать

Сортування за значеннями за допомогою функції uasort()

Функція uasort() дуже схожа на uksort(), з тією різницею, що змінній (користувача) функції сортування "підсуваються" не ключі, а чергові значення з масиву. При цьому також зберігаються зв'язки в парах ключ => значенням.

Перевертання масиву за допомогою функції array_reverce()

Функція array_reverse() повертає масив, елементи якого слідують у зворотному порядку щодо масиву, переданого в параметрі. При цьому зв'язки між ключами і значеннями, звичайно, не губляться. Наприклад, замість того, щоб ранжувати масив у зворотному порядку за допомогою arsort(), ми можемо відсортувати його в прямому порядку, а потім перевернути:

$A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor"); asort($A); $A=array_reverse($A);

Звичайно, зазначена послідовність працює довше, ніж один-єдиний виклик arsort().

Сортування списку за допомогою функцій sort() і rsort()

Ці дві функції призначені в першу чергу для сортування списків. Функція sort() сортує список (зрозуміло, за значеннями) у порядку зростання, а rsort() - в порядку убування. Приклад для функції sort():

<?php

$A=array("40", "20", "10", "30");

sort($A);

for($i=0; $i<count($A); $i++) echo "$A[$i]"."<br>";

// Виводить 10 20 30 40

?>

Перемішування списку за допомогою функції shuffle()

Функція shuffle() "перемішує" список, переданий їй першим параметром, так, щоб його значення розподілялися випадковим чином. Зверніть увагу, що, по-перше, змінюється сам масив, а по-друге, асоціативні масиви сприймаются як списки. Приклад:

$A=array(10,20,30,40,50); shuffle($A); foreach($A as $v) echo "$v ";

Наведений фрагмент коду виводить числа 10, 20, 30, 40 і 50 у випадковому порядку. Виконавши цей фрагмент кілька разів, ви можете виявити, що від запуску до запуску черговість проходження чисел не змінюється. Ця властивість обумовлена тим, що функція shuffle() використовує стандартний генератор випадкових чисел, який перед роботою необхідно ініціалізувати за допомогою виклику srand().

Операції з ключами і значеннями масиву

array_flip(array $arr)

Функція array_flip() "пробігає" по масиву і змінює місцями його ключі і значення. Вихідний масив $arr не змінюється, а результуючий масив просто повертається. Звичайно, якщо в масиві були присутні кілька елементів з однаковими значеннями, враховуватися буде тільки останній з них:

<?php

$A=array("a"=>"aaa", "b"=>"aaa", "c"=>"ccc");

$A=array_flip($A);

// Тепер $A === array ("aaa" => "b", "ccc" => "c");

?>

array_keys (array $arr[, mixed $SearchVal])

Функція array_keys() повертає список, що містить всі ключі масиву $arr. Якщо встановлено необов'язковий параметр $SearchVal, то вона поверне тільки ті ключі, яким відповідають значення $SearchVal. Фактично, ця функція із заданим другим параметром є зворотньою по відношенню до оператора[] - витяганню значення за його ключем.

array_values(array $arr)

Функція array_values() повертає список всіх значень в асоціативному масиві $arr. Очевидно, така дія марна для списків, але іноді виправдано для хешей.

in_array(mixed $val, array $arr)

Функція in_array() повертає true, якщо елемент зі значенням $val присутній в масиві $arr. Втім, якщо вам часто доводиться виконувати цю операцію, подумайте: чи не краще буде скористатися асоціативним масивом і зберігати дані в його ключах, а не в значеннях? На цьому ви можете сильно виграти у швидкодії.

array_count_values(list $List)

Функція array_count_values() підраховує, скільки разів кожне значення зустрічається в списку $List, і повертає асоціативний масив з ключами - елементами списку та значеннями - кількістю повторів цих елементів. Іншими словами, функція array_count_values() підраховує частоту появи значень у списку $List. Приклад:

<?php

$List = array (1, "hello", 1, "world", "hello");

array_count_values ($array);

// Повертає array (1 => 2, "hello" => 2, "world" => 1)

?>