Обхождане
на масив
ЗА да извършите операции последователно върху елементите на
масива, трябва да можете да го обхождате последователно. Има различни начини за
обхождане на всеки елемент на масив. Но най-удобният е използването на цикъла
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 |
0 James Patt 1 John Smith 2 Susan Carter |
JP James Patt JS John Smith SC Susan Carter |
$Student = array ("John", "James", "Susan"); rsort($Student); |
0 Susan 1 John 2 James |
SC Susan Carter JS John James JP James Patt |
$Student = array ("b" =>"Susan", "d" =>"Andrew", "a"=>"John", "c" => "James"); |
a John b Susan c James d Andrew |
d Andrew c James b Susan a John |