Помогни ни да направим Uroci.net по - богат! Добави урок

PHP - част 5 (Работа с масиви)

PHP » PHP
fix3d   трудност:    видян: 17347



Обхождане на масив
ЗА да извършите операции последователно върху елементите на масива, трябва да можете да го обхождате последователно. Има различни начини за обхождане на всеки елемент на масив. Но най-удобният е използването на цикъла foreach. Ще се разгледаме един пример.
Да предположим, че имаме номериран масив на име Student, който съдържа стойностите "John", "James" и "Susan". Можете да използвате цикъла foreach за да осъществите последователно достъп до всеки елемент в масива, като текущият елемент, се съхранява във времена променлива с име new. Ето как може да стане това:

$Student = array("James", "John", "Susan");
foreach ($Student as $new)
{
print "$new";
}


Горният код ще визуализира всички елементи на масива. Току-що използвахме цикъла foreach за обхождане на номериран масив. За да обходите асоциативен масив и за да осъществите достъп до индексите и стойностите в него, трябва да използвате следната модификация на цикъла foreach:

foreach ($Student as key_name => $new) { // }

Тук променливата key_name съхранява текущия индекс, а променливата new, текущата стойност.

Вече видяхте как можете да обхождате масив с помощта на цикъла foreach. Видяхте и как можете да използвате функциите count() и current(). Има още две функции, с помощта на които, можете да обхождате масив а именно next() и prev().
Функцията next() получава като аргумент масив. тази функция обхожда масив от лява на дясно. функцията next() връща стойността на следващия елемент. Когато достигне до края на масива, тя връща стойност False. Функцията prev() също получава като аргумент масив, но обхожда масива от края към началото му.


Търсене на елемент в масив
PHP предоставя няколко функции за търсене на елемент в масив. В PHP можете да:

Намирате елементи, които отговарят на критерий. ДА предположим, че искате да намерите всички елементи от масив, които отговарят на даден критерии. Можете да намерите тези елементи по два начина - или като използвате цикъла foreach(), за да обходите целия масив и да проверите всяка от стойностите, или като използвате функцията preg_grep() за да постигнете същата цел. Функцията preg_grep() претърсва масив за елементи, отговарящи на зададен критерии, и връща откритите елементи като масив.
Да предположим, че искате да претърсите масива Student за да намерите всички студенти имащи Smith в имената си. В този случай можете да използвате функцията preg_grep() по следния начин.

$Student = array ("James Patt", "John Smith", "Susan Carter", "Joe Smith", "Janet Jones"); $array_Smit = preg_grep() ("/^Smith", $Student);


В горния код масивът Student се претърсва с функцията preg_grep() за елементи, съдържащи низа Smith. Резултатът ще бъде масив съдържащ John Smith и Joe Smith
Намиране разликата на два масива. До сега научихте, как можете да намирате уникалните елементи в масив. Сега да предположим, че искате да намерите елементите в даден масив, които не се срещат в друг масив. Можете да направите това, като използвате функцията array_diff(), за да намерите разликата на два масива. Функцията array_diff() има следния синтаксис:

array_diff($Масив_1, $Масив_2);

Функцията array_diff() връща елементите, които се намират в $Масив_1, но не и в $Масив_2. Можете да използвате тази функция, за да претърсите повече от един масив, като разделите масивите със запетая.


Обръщане на реда на елементите в масив
Да предположим, че искате да обработвате даден масив в обратен ред. Ако масивът е кратък, можете да използвате функцията array_reverse(). Функцията array_reverse()приема като параметър масив, чиито ред искате да обърнете. Тя има следния синтаксис:

$array2 = array_reverse($array1);

Ако масивът ви е много голям, функцията array_reverse() ще отнеме много време. Тогава можете да използвате цикъла for(), за да обходите масива в обратен ред. Например, можете да обърнете масива Rate ( разглеждан преди това ), като използвате цикъла for по следния начин.

for (x = count($Rate) -1; Rate >= 0 ; X--) { // оператори }
Тук първо намираме общият брой на елементите, като използваме функцията count(). След това цикъла обхожда масива от последния елемент, до първия


Сортиране на масиви
Функцията sort() е проста функция предназначена за сортиране на елементи
Функцията sort()

Можете да използвате функцията sort(), за да сортирате масиви по числовия, или азбучен ред на елементите им. Тази функция променя индексите в масивите в зависимост от реда на сортиране. Например:

$Student = array("John", "James", "Susan"); sort ($Student);

Когато визуализирате индекса и стойността на елементите в масива, ще получите следния резултат
0 James
1 John
2 Susan

Обърнете внимание, че индексите са променени след сортирането.
Сега да предположим, че имате асоциативен масив. Например:

$Student = array ("JS" -=> "John Smith",
("JP" -=> "James Patt",
("SC" -=> "Susan Carter");

Ако сортирате масива, използвайки функцията sort(), и след това покажете индекса и стойността на елементите от масива, ще получите следния резултат:
0 James Patt
1 John Smith
2 Susan Carter

Обърнете внимание, че низовите индекси в асоциативния масив са преобразувани до числови индекси. това е големият проблем при използването на функцията sort() за сортирането на асоциативни масиви. Този проблем, може да се избегне, ако се използва функцията asort().
Съществуват няколко други функции, които ви помагат за сортирането на асоциативен и номериран масив. Те са:
asort(): Функцията asort() се използва за сортирането на масив, без да се променят индексите. Ако сортирате масива Student с функцията asort(), ще получите следния резултат:
JP James Patt
JS John Smith
SC Susan Carter

rsort() Функцията rsort() е подобна на функцията sort(). Единствената разлика е, че сортира елементите в обратен ред. Да разгледаме следния пример:
$Student = array ("John", "James", "Susan"); rsort($Student);

След сортирането на масива, функцията rsort() ще получи следния резултат:
0 Susan
1 John
2 James

arsort()Функцията arsort() е подобна на функцията asort(). Единствената разлика е, че сортира елементите в обратен ред. Да предположим, че искате да сортирате елементите на масива Student в обратен ред, като при това индексите остават непроменени. За да извършите това трябва да използвате функцията arsort().
Прилагайки на функцията arsort() за сортиране на масива Student, ще получите следния резултат:
SC Susan Carter
JS John James
JP James Patt

ksort() За да сортирате индексите на асоциативен масив, трябва да използвате функцията ksort(). Да предположим, че имате масива Student и трябва да го сортирате по индексите му.
$Student = array ("b" =>"Susan", "d" =>"Andrew", "a"=>"John", "c" => "James");

Сортирайки масива Student с помощта на функцията ksort(), ще получите следния резултат:
a John
b Susan
c James
d Andrew

krsort() Функцията krsort() е подобна на функцията ksort(). Единствената разлика е, че тя сортира елементите в обратен ред. Така, че ако използвате функцията krsort() върху масива Student, ще получите следния резултат

d Andrew
c James
b Susan
a John


източник на урока: http://www4u.search.bg


Страници: «1 2 3

Коментари (1)

azerot на 17.07 2008 в 17:42ч.
(clap) Доста добре направено!

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com