Слайд 1Мировые информационные ресурсы
Лекция 3. Массивы
Слайд 2Массивы
представляют собой коллекции пар «ключ / значение».
При обращении к
массиву выполняется отображение значения ключа (индекса) в соответствующее ему значение.
В
качестве индексов могут выступать либо целые числа, либо строковые значения.
Элементы массива могкт содержать значения любого типа, включая другие массивы.
Слайд 3Одномерные индексируемые массивы
Обращение к элементу: $имя[индекс1];
Создание элементов:
$arr[0] = "element0";
$arr[1]
= "element1";
$arr[2] = "element2";
Добавление нового элемента в конец массива
- присвоить
значение переменной массива без указания индекса:
$arr[ ] = "element0";
$arr[ ] = "element1";
$arr[ ] = "element2";
Добавление в конкретную позицию массива
$languages[15] = "Italian";
$languages[22] = "French";
Слайд 4Одномерные ассоциативные массивы
- удобны в ситуациях, когда элементы массива удобнее
связывать со словами, а не с числами.
Создание:
$myhash["name1"] = "element1";
$myhash["name2"]
= "element2";
$myhash["name3"] = "element3";
Вывод элемента массива $myhash:
print $myhash["name2"]; // Выводится строка "element2"
Слайд 5Многомерные индексируемые массивы
работают практически так же, как и одномерные, но
элементы в них определяются несколькими индексами вместо одного.
Размерность индексируемого массива
не ограничивается.
Обобщенный синтаксис элементов:
$имя[индекс1][индекс2]..[индексN];
Слайд 6Многомерные ассоциативные массивы
$pairings["Beringer"]["merlot"] = "Baked Ham";
$pairings["Jarvis"]["sauvignon"] = "Prime Rib";
Смешанное индексирование
Пример:
$arr[1]["name"]
= "Иван";
$arr[1]["age"] = 22;
$arr[2]["name"] = "Петр";
$arr[2]["age"] = 20;
Пример ссылки на
элемент двухмерного смешанного массива:
$person = $arr[1]["name"];
Слайд 7Функция аrrау()
$myhash = аrrау(name1 => "element1", name2 => "element2", name3
=> "element3");
$myarray1 = аrrау(1, 2, 3);
$myarray1 = аrrау(0 => 1,
1 => 2, 2 => 3); # эквивалентно предыдущей записи
$myarray2 = аrrау(1 => "element1", 2 => "element2", 3 => "element3");
$myarray2 = аrrау(1 => "element1", "element2", "element3");# эквивалентно предыдущей записи
$myarray3 = array (array("name" => "Иван", "age" => 22), array("name" => "Петр", "age" => 20)); # вложенный массив
"element2", name3 => "element3");$myarray1 = аrrау(1, 2, 3);$myarray1 = аrrау(0 => 1, 1 => 2, 2 => 3); # эквивалентно предыдущей записи$myarray2 = аrrау(1 => "element1", 2 => "element2", 3 => "element3");$myarray2 = аrrау(1 => "element1", "element2", "element3");# эквивалентно предыдущей записи$myarray3 = array (array("name" => "Иван", "age" => 22), array("name" => "Петр", "age" => 20)); # вложенный массив"> "element2", name3 =>" alt="Функция аrrау()$myhash = аrrау(name1 => "element1", name2 => "element2", name3 => "element3");$myarray1 = аrrау(1, 2, 3);$myarray1 =">
Слайд 8Функция print_r()
- выводит содержимое массива в удобочитаемом виде.
Пример:
$myarray = аrrау(1,
2, 3);
print_r($myarray);
Вывод:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Слайд 9Обход массива с помощью foreach()
foreach ($array as [$key =>] [&]
$value)
...
& указывается в случае, когда значения элементов будут меняться в
теле цикла.
Пример:
$students = array(“Иванов”, “Петров”, “Сидоров”);
print “Список студентов: \n”;
foreach ($students as $key => $value)
{ print “№$key $value\n”;}
Вывод:
Список студентов:
№1 Иванов
№2 Петров
№3 Сидоров
Слайд 10Обход массива с помощью foreach()
Пример:
$people = array (1 => array("name"
=> "Иван", "age" => 22), array("name" => "Петр", "age" =>
20));
foreach ($people as $person) {
if ($people[“age”] >= 20) {
$person [“age group”] = “Старше 20-ти”;
} else {
$person [“age group”] = “Младше 20-ти”;
}}
print_r($people);
Слайд 11Обход массива с помощью foreach()
Пример: Вывод:
Array
(
[1] => Array
(
[name] =>Иван
[age] =>
22
[age group] => “Старше 20-ти”
)
[2] => Array
(
[name] =>Петр
[age] => 20
[age
group] => “Младше 20-ти”
)
)
Слайд 12Функция list( )
— одновременное присваивание значений, извлеченных из массива, сразу
нескольким переменным.
Синтаксис команды list( ):
list (переменная1 [, переменная2 ,
...] )
Пример:
while ($line = fgets ($user_file, 4096)) :
list ($name, $occupation, $color) = split( "|", $line);
print "Name: $name
";
print "Occupation: $occupation
";
print "Favorite color: $color
";
endwhile;
Слайд 13Курсор массива
- внутренний указатель, хранящий текущую позицию в массиве.
Функция reset()
устанавливает внутренний курсор массива на его начало и возвращает значение
начального элемента.
Слайд 14Функция each()
возвращает в массиве пару "индекс и значение" текущего
элемента массива, на который указывает внутренний курсор, и сдвигает курсор
массива на следующий элемент.
Синтаксис : array each(array arr);
- возвращаемый массив имеет четыре элемента:
[0] => индекс
[1] => "значение"
[key] => индекс
[value] => "значение"
Функция возвращает false, если курсор достиг конца массива.
Пример:
$foo = array("bob", "fred", "jussi", "joini", "egon", "marliese");
$bar = each($foo);
// теперь $bar = (0=>0, 1=>"bob", key=>0, value=>"bob")
Слайд 15Функция each()
Обычно функцию each() используют в паре с list()
для перебора элементов массива:
Пример:
$persons = array ("bob", "fred", "jussi",
"joini", "egon", "marliese");
reset($persons);
while (list($key, $val) = each ($persons))
{
print “#$key = $val\n”;
}
Пример:
reset($HTTP_POST_VARS);
while(list($key, $val) = each($HTTP_POST_VARS)) {
echo "$key = %val
";
}
Слайд 16Функция each()
Пример: Построение таблицы HTML по содержимому массива
$languages
= array ("Country" => "Language",
"Spain" => "Spanish", "USA" => "English",
"France"
=> "French", "Russia" => "Russian");
print "
";
reset ($languages);
$hd1 = key ($languages);
$hd2 = $languages[$hd1];
print "$hd1 | $hd2 |
";
next($languages);
while (list ($ctry,$lang) = each ($languages)) :
print "$ctry | $lang |
";
endwhile;
print "
";
Слайд 17Функция each()
Пример: вывод
Country Language
Spain Spanish
USA English
France French
Russia Russian
Слайд 18Функция range( )
создает массив целых чисел из интервала, определяемого верхней
и нижней границами.
возвращает массив, состоящий из всех целых чисел указанного
интервала.
Синтаксис:
range (нижняя_граница, верхняя граница)
Пример:
$lottery = range(0,9); # $lottery = array(0,1,2,3,4,5,6,7,8,9)
Слайд 19Поиск элементов массива
Функция in_array ( )
проверяет, присутствует ли в
массиве заданный элемент. Если поиск окажется удачным, функция возвращает TRUE,
в противном случае возвращается FALSE.
Синтаксис:
in_array(элемент, массив)
Пример:
$languages = array("English", "Spanish"):
$exists = in_array("Russian", $languages); // $exists присваивается FALSE
$exists = in_array("English", $languages): // $exists присваивается TRUE
Слайд 20Поиск элементов массива
Функция in_array( ) часто встречается в управляющих конструкциях,
когда ее возвращаемое значение используется для выбора одного из двух
вариантов продолжения.
Пример:
$language = "Russian";
$email = "user@mail.ru";
if (in_array($language, $languages)) :
subscribe_user($email, $language);
print "Вы внесены в список расылки, язык подписки: $language.";
else:
print "Приносим извинения, но на языке $language новости не рассылаем".
endif;
Слайд 21Функция array_keys( )
- возвращает массив, содержащий все ключи исходного массива,
переданного в качестве параметра. Если при вызове передается дополнительный параметр
искомый_элемент, возвращаются только ключи, которым соответствует заданное значение; в противном случае возвращаются все ключи массива.
Синтаксис:
array_keys (массив [, искомый_элемент])
Пример:
$arr = array(0 => 100, "color" => "red", 15);
array_keys($arr); # возвращает array(0, "color", 1)
$arr = array("blue", "red", "green", "blue", "blue");
array_keys($arr, "blue"); # возвращает array(0, 3, 4)
"red", 15);array_keys($arr); # возвращает array(0, "color", 1)$arr = array("blue", "red", "green", "blue", "blue");array_keys($arr, "blue"); # возвращает array(0, 3, 4)">
Слайд 22Функция array_values( )
- возвращает массив, состоящий из всех значений исходного
массива, переданного в качестве параметра. Синтаксис:
array_values(массив)
Пример:
$arr = array("size"
=> "XL", "color" => "gold");
array_values($arr); # возвращает array("XL", "gold")
Слайд 23Добавление и удаление элементов
Функция array_push( )
- присоединяет (то есть дописывает
в конец массива) один или несколько новых элементов.
Синтаксис:
array_push(массив, элемент
[, ...])
Пример:
$languages = array("Spanish", "English", "French");
array_push($languages, "Russian", "German");
Слайд 24Добавление и удаление элементов
Функция аrrау_рор( )
- извлекает (то есть удаляет)
последний элемент из массива. Извлеченный элемент возвращается функцией. При каждом
выполнении аrrау_рор( ) размер массива уменьшается на 1.
Главное различие между этими функциями заключается в том, что array_push( ) может добавлять несколько элементов одновременно, а аrrау_рор( ) удаляет элементы только по одному.
Синтаксис:
аrrау_рор(аrrау массив)
Пример:
$languages = array("Spanish", "English", "French", "Russian", "German");
$a_language = array_pop($languages): // $a_language = "German"
$a_language = array_pop($languages): // $a_language = "Russian"
// $languages = array ("Spanish", "English", "French");
Слайд 25Добавление и удаление элементов
Функция array_shift( )
- аналогична аrrау_рор( )
с одним отличием: элемент удаляется из начала (левого края) массива.
Все остальные элементы массива сдвигаются на одну позицию к началу массива.
Синтаксис:
array_shift(массив)
Пример:
$languages = array("Spanish", "English", "French", "Russian");
$a_language = array_shift($languages); # $a_language = "Spanish";
// $languages = array("English", "French", "Russian");
Слайд 26Добавление и удаление элементов
Функция array_unshift( )
— новый элемент вставляется в
начало массива, а остальные элементы сдвигаются на одну позицию вправо.
Синтаксис:
array_unshift (массив, переменная1 [....переменная2])
Пример добавления нескольких элементов:
$languages = array("French", "Italian", "Spanish");
array_unshift($languages, "Russian", "Swahili", "Chinese");
// $languages = array("Russian", "Swahili", "Chinese", "French", "Italian", "Spanish");
Слайд 27Добавление и удаление элементов
Функция array_pad( )
- позволяет быстро увеличить
массив до желаемого размера посредством его дополнения стандартными элементами.
Синтаксис:
arrap_pad (массив, размер, значение):
- размер определяет новую длину массива.
- значение задает стандартное значение, присваиваемое элементам во всех новых позициях массива.
- Если размер положителен, массив дополняется справа, а если отрицателен — слева.
- Если абсолютное значение параметра размер меньше либо равно длине массива, никаких действий не выполняется.
Слайд 28Добавление и удаление элементов
Пример:
$weights = array(1, 3, 5, 10, 15,
25, 50);
$weights = array_pad($weights. 10, 100);
// Результат: $weights = array(1,
3, 5, 10, 15, 25, 50, 100, 100, 100);
Пример:
$weights = array(1, 3, 5, 10, 15, 25, 50);
$weights = array_pad($weights, -10, 100);
// Результат: $weights = array(100, 100, 100, 1, 3, 5, 10, 15, 25, 50);
Пример:
$weights = array(1, 3, 5, 10, 15, 25, 50);
$weights = array_pad($weigtits, 3, 100);
// Массив $weights не изменяется:
// $weights = array(1, 3, 5, 10, 15, 25, 50);
Слайд 29Перемещения указателя массива
Функция end( ) перемещает указатель к позиции последнего
элемента массива.
Синтаксис: end (массив)
Функция next ( ) смещает указатель
на одну позицию вперед, после чего возвращает элемент, находящийся в новой позиции. Если в результате смещения указатель выйдет за пределы массива, next ( ) возвращает ложное значение.
Синтаксис: next (массив)
Недостаток: ложное значение возвращается и для существующих, но пустых элементов массива.
Функция prev( ) аналогична next ( ) за одним исключением: указатель смещается на одну позицию к началу массива, после чего возвращается элемент, находящийся в новой позиции. Если в результате смещения указатель окажется перед первым элементом массива, prev( ) вернет ложное значение.
Синтаксис: prev (массив)
Недостаток: ложное значение возвращается и для существующих, но пустых элементов массива. При необходимости провести обычный перебор, лучше воспользоваться функцией each( ).
Слайд 30Функция array_walk( )
позволяет применить функцию к нескольким (а возможно, всем)
элементам массива.
Синтаксис:
array_walk(массив, имя_функции [, данные])
Функция, заданная параметром имя_функции, может
использоваться для различных целей — например, для поиска элементов с определенными характеристиками или модификации содержимого массива.
В ассоциативных массивах функция имя_функции должна получать минимум два параметра — элемент массива и ключ.
Слайд 31Функция array_walk( )
Пример увеличения каждого элемента массива на 1
$number
= array ("1"=>"15", "2"=>"20", "3"=>"25");
function printarray ($item, $key)
{
echo "$key=>$item
\n";
}
function add_array (&$item, $key) # параметр $item придется изменять
{
$item = $item + 1;
}
echo("Before:
");
array_walk ($number, 'printarray');
echo("After:
");
array_walk ($number, 'add_array');
array_walk ($number, 'printarray');
Слайд 32Функция array_walk( )
Результат:
Before:
1=>15
2=>20
3=>25
After:
1=>16
2=>21
3=>26
Слайд 33Функция array_walk( )
Пример удаления дубликатов из массива:
function delete_dupes($element) {
static $last="";
if ($element == $last)
unset($element);
else:
$last=$element;
}
$emails = array("blah@blah.com", "chef@mail.ru", "blah@blah.com");
sort($emails);
reset($emails);
array_walk($emails,"delete_dupes");
// $emails
= array("chef@wjgilmore.com", "blah@blah.com");
Слайд 34Функция array_reverse( )
позволяет перейти к противоположному порядку элементов, составляющих массив.
При вызове array_reverse( ) для ассоциативного массива пары «ключ/значение» сохраняются,
изменяется только порядок элементов массива.
Синтаксис:
array_reverse(массив)
Рассмотрим пример использования функции array_reverse( ):
$us_producers = array ("California", "Oregon", "New York". "Washington");
$us_producers = array_reverse ($us_producers);
// $us_producers = array ("Washington", "New York", "Oregon", "California");
Слайд 35Функция array_flip( )
меняет местами ключи и значения элементов массива. Синтаксис:
array_flip(массив)
Пример:
$languages = array("Spain" => "Spanish", "France" => "French", "Italy"
=> "Italian");
$languages = array_flip($languages);
// $languages = array("Spanish" => "Spain", // "French" => "France", // "Italian" => "Italy");
Слайд 36Размер массива
Функция sizeof ( ) возвращает количество элементов в массиве.
Синтаксис: sizeof (массив)
Пример:
$us_producers = array ("Washington", "New York", "Oregon",
"California");
for ($i = 0; $i < sizeof ($us_producers); $i++) :
print "$us_producers[$i]";
endfor;
Пример:
$pasta = array("bowties", "angelhair", "rigatoni");
$pasta_size = sizeof($pasta);
// $pasta_size = 3
Слайд 37Размер массива
Функция count( ) выполняет ту же операцию, что и
sizeof ( ) — возвращает количество значений, содержащихся в массиве.
Синтаксис:
count (переменная)
- если переменная существует и является массивом, count ( ) возвращает количество элементов в массиве;
- если переменная существует, но не является массивом, функция возвращает значение 1;
- если переменная не существует, возвращается значение 0.
Слайд 38Размер массива
Функция array_count_values( ) подсчитывает количество экземпляров каждого значения в
массиве.
Синтаксис:
array_count_values(массив):
- возвращает массив, где ключами будут значения
исходного массива, а значениями — их частоты:
Пример:
$states = аrrау("ОН", "ОК", "СА", "РА", "ОН", "ОН", "РА", "АК");
$state_freq = array_count_values($states);
// $state_freq = аrrау("ОН" => 3, "ОК" => 1, "СА" => 1, "РА" => 2, "АК" => 1);
Слайд 39Сортировка массивов
В РНР существует девять стандартных функций сортировки, причем каждая
функция сортирует массив особым образом.
sort, rsort, asort, arsort, ksort, krsort,
usort, uasort, uksort
Функция sort( ) сортирует элементы массива по возрастанию (от меньших к большим). Синтаксис:
sort (массив)
Нечисловые элементы сортируются в алфавитном порядке в соответствии с ASCII-кодами.
Слайд 40Сортировка массивов
Пример:
$cities = array("Aprilia", "Nettuno", "Roma", "Venezia", "Anzio");
sort($cities);
for (reset($cities); $key
= key ($cities); next ($cities)):
print("cities[$key] = $cities[$key]
";
Endfor;
Результат:
cities[0] = Anzio
cities[1]
= Aprilia
cities[2] = Nettuno
cities[3] = Roma
cities[4] = Venezia
Слайд 41Сортировка массивов
Функция rsort ( ) - элементы массива сортируются в
обратном порядке. Синтаксис:
rsort (массив)
Пример:
$cities array("Aprilia", "Nettuno", "Roma", "Venezia", "Anzio");
rsort($cities);
Результат
сортировки:
cities[0] = Venezia
cities[1] = Roma
cities[2] = Nettuno
cities[3] = Aprilia
cities[4] = Anzio
Слайд 42Сортировка массивов
Функция asort( ) сохраняет исходную ассоциацию индексов с элементами
независимо от нового порядка элементов. Синтаксис:
asort(массив)
Пример:
$cities = array("Aprilia", "Nettuno", "Roma",
"Venezia", "Anzio");
asort($cities):
В результате сортировки:
cities[4] = Anzio
cities[0] = Aprilia
cities[1] = Nettuno
cities[2] = Roma
cities[3] = Venezia
Слайд 43Сортировка массивов
Пример:
$A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor");
asort($A);
foreach($A as $k=>$v) echo "$k=>$v ";
Вывод
c=>Alpha d=>Processor b=>Weapon
a=>Zero
Слайд 44Сортировка массивов
Функция arsort ( ) представляет собой разновидность asort( ),
которая сохраняет исходную ассоциацию индексов, но сортирует элементы в обратном
порядке. Синтаксис :
arsort (array массив)
Пример:
$cities = array("Aprilia", "Nettuno", "Roma", "Venezia", "Anzio");
arsort($cities);
В результате сортировки:
cities[3] = Venezia
cities[2] = Roma
cities[1] = Nettuno
cities[0] = Aprilia
cities[4] = Anzio
Слайд 45Сортировка массивов
Функция ksort( ) сортирует массив по ключам, сохраняя исходные
ассоциации ключей со значениями. Синтаксис:
ksort (массив)
Пример:
$A=array("d"=>"Zero","c"=>"Weapon","b"=>"Alpha","a"=>"Processor");
ksort($A);
for(reset($A); list($k,$v)=each($A);) echo "$k=>$v ";
Вывод
a=>Processor b=>Alpha c=>Weapon d=>Zero
Слайд 46Сортировка массивов
Функция krsort( ) аналогична ksort( ), но ключи сортируются
в обратном порядке. Синтаксис:
krsort ($массив)
Пример:
$producers = array (
"America" => "Napa
Valley", "Italy" => "Tuscany",
"Australia" => "Ruthgerlen", "France" => "Loire".
"Chile" => "Rapel Valley");
krsort($producers);
В результате сортировки:
"Italy" => "Tuscany"
"France" => "Loire"
"Chile" => "Rapel Valley"
"Australia" => "Ruthgerlen"
"America" => "Napa Valley"
Слайд 47Сортировка с пользовательскими критериями
Функция usort( )
usort (массив, string имя_функции)
- в
параметре массив передается имя сортируемого массива,
- в параметре имя_функции
передается имя функции, на основании которой будет осуществляться сортировка.
Пример: сортировка массива по длине
$vocab = аrrау( "Socrates", "Aristophanes", "Plato", "Aeschylus", "Thesmophoriazusae");
function compare_length($str1, $str2) {
$length1 = strlen($str1);
$length2 = strlen($str2);
//функция strlen( ) - определение длины строки
Слайд 48Сортировка с пользовательскими критериями
if ($length1 == $length2) :
return 0;
elseif ($length1
< $length2) :
return -1;
else :
return 1;
endif;
}
// Вызов usort() с указанием
функции compare_length() в качестве критерия сортировки
usort ($vocab, "compare_length") :
// Вывод отсортированного списка
while (list ($key, $val) = each ($vocab)) {
echo "$val
";
}
Слайд 49Сортировка с пользовательскими критериями
Пример:
function FCmp($a,$b) { return strcmp($a,$b); }
//функция strcmp(str1,
str2) сравнивает две строки посимвольно и возвращает
// 0 -
если строки полностью совпадают,
//-1 - если строка str1 лексикографически меньше str2,
// 1 - если, str1 "больше" str2.
$A = array("One","Two","Three","Four");
usort($A);
for($i=0; $i// выводит "0:Four 1:One 2:Three 3:Two"
Слайд 50Сортировка с пользовательскими критериями
Пример:
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: $val\n";
}
При выполнении будет напечатано:
0: 6
1: 5
2: 3
3: 2
4: 1
Слайд 51Сортировка с пользовательскими критериями
Пример сортировки многомерного массива:
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
Слайд 52Сортировка с пользовательскими критериями
Функции uasort( ) и uksort( ) представляют
собой разновидности usort( ) с тем же синтаксисом.
Функция uasort(
) сортирует массив по пользовательскому критерию с сохранением ассоциаций «ключ/значение».
Функция uksort( ) также сортирует массив по пользовательскому критерию, однако сортируются не значения, а ключи.
Слайд 53Работа с несколькими массивами
Функция array_merge( ) сливает от 1 до
N массивов, объединяя их в соответствии с порядком перечисления в
параметрах. Синтаксис:
array_merge(массив1, массив2, ..., массивN)
Пример простого объединения массивов:
$arr_1 = array("strawberry", "grape", "lemon");
$arr_2 = array("banana", "cocoa", "lime");
$arr_3 = array("peach", "orange");
$arr_4 = array_merge ($arr2, $arr_1, $arr_3):
// $arr_4 = array("banana", "cocoa", "lime", "strawberry", "grape", "lemon", "peach", "orange");
Слайд 54Работа с несколькими массивами
Функция array_slice( ) возвращает часть массива, начальная
и конечная позиция которой определяется смещением от начала и необязательным
параметром длины. Синтаксис:
array_slice(массив, смещение [, длина])
Значения параметров:
- Если смещение положительно, начальная позиция возвращаемого фрагмента отсчитывается от начала массива.
- Если смещение отрицательно, начальная позиция возвращаемого фрагмента отсчитывается от конца массива.
- Если длина не указана, в возвращаемый массив включаются все элементы от начальной позиции до конца массива.
- Если указана положительная длина, возвращаемый фрагмент состоит из заданного количества элементов.
- Если указана отрицательная длина, возвращаемый фрагмент заканчивается в заданном количестве элементов от конца массива.
Слайд 55Работа с несколькими массивами
Функция array_splice( ) заменяет часть массива, определяемую
начальной позицией и необязательной длиной, элементами необязательного параметра-массива. Синтаксис:
array_splice(входной_массив, смещение,
[длина], [заменяющий_массив]);
Значения параметров:
- Если смещение положительно, начальная позиция первого удаляемого элемента отсчитывается от начала массива.
- Если смещение отрицательно, начальная позиция первого удаляемого элемента отсчитывается от конца массива.
- Если длина не указана, удаляются все элементы от начальной позиции до конца массива.
- Если указана положительная длина, удаляемый фрагмент состоит из заданного количества элементов.
- Если указана отрицательная длина, из массива удаляются элементы от начальной позиции до позиции, находящейся на заданном расстоянии от конца массива.
- Если заменяющий_массив не указан, то элементы, заданные смещением и необязательной длиной, удаляются из массива.
- Если заменяющий_массив указан, он должен быть заключен в конструкцию аггау() (если он содержит более одного элемента).
Слайд 56Работа с несколькими массивами
Функция array_splice( )
Примеры:
Удаление всех элементов с
пятой позиции до конца массива:
$pasta = array_splice($pasta, 5);
Удаление пятого и
шестого элементов:
$pasta = array_splice($pasta, 5, 2);
Замена пятого и шестого элементов новыми значениями:
$pasta = array_splice($pasta, 5, 2, array("element1", "element2"));
Удаление всех элементов, начиная с пятого, до третьего элемента с конца массива:
$pasta = array_splice($pasta, 5, -3); он содержит более одного элемента).
Слайд 57Работа с несколькими массивами
Функция shuffle( ) сортирует элементы массива в
случайном порядке.
Синтаксис: shuffle(массив);