Пример 1
1 2 3 4 5 6 7 8 |
<?php //Объявляется массив $massiv целых чисел $massiv = [3, 6, 1, 8, 4]; //Переменной $dlina присваивается количество элементов массива $dlina = count($massiv); //С первого по последний выводятся элементы массива for($i = 0; $i < $dlina; $i++) echo $massiv[$i]; ?> |
Пример выводит “36184”.
Функция “count” возвращает длину массива – количество элементов. Её аргумент – массив. В цикле “for” перебираются и выводятся все элементы массива.
Пример 2
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //Объявляется массив $massiv $massiv = []; //В массив добавляется 3 $massiv[] = 3; //В начало массива добаляются 1 и 2 array_unshift($massiv, 1, 2); //В конец массива добавляются 4, 5 и 6 array_push($massiv, 4, 5, 6); //Значения массива выводятся: 123456 foreach($massiv as $value) echo $value; ?> |
Квадратные скобки “[ ]” и присваивание после имени массива позволяют добавить элемент в конец массива. Функция “array_unshift” добавляет один или несколько элементов в начало массива, а функция “array_push” – в конец массива. В цикле “foreach” перебираются и выводятся все элементы массива.
Пример 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php //Объявляется массив $massiv $massiv = [1, 2, 3]; //Удаляется второй элемент unset($massiv[1]); //Удаляется и возвращается первый элемент $el = array_shift($massiv); //Выводит 1 echo $el; //Удаляется и возвращается последний элемент $el = array_pop($massiv); //Выводит 3 echo $el; //В массиве не остаётся элементов ?> |
“unset” позволяет удалить элемент массива по индексу. “array_shift” удаляет первый элемент массива. Эта функция возвращает первый элемент. Аналогично, “array_pop” удаляет и возвращает последний элемент.
Пример 4
1 2 3 4 5 6 7 |
<?php //Объявляется массив $massiv $massiv = [1 => 'red', 2 => 'green', 3 => 'blue']; //Выводятся индексы и значения элементов массива foreach($massiv as $key => $value) echo $key . ' => ' . $value . '<br>'; ?> |
В цикле “foreach” перебираются и выводятся индексы и значения элементов массива.
Пример 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php //Функция func возвращает значение в 2 раза больше параметра function func($value) { return $value + $value; } //Объявляется массив $massiv $massiv = [1, 2, 3, 4, 5]; //К элементам массива $massiv применяется функция func //и новый массив записывается в переменную $novii $novii = array_map('func', $massiv); //Выводится массив $novii: 2; 4; 6; 8; 10; foreach($novii as $value) echo $value . '; '; ?> |
“array_map” применяет функцию к элементам массива и возвращает преобразованный массив.
Пример 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php //Объявляется массив $massiv $massiv = [2 => 'red', 4 => 'blue', 1 => 'black', 5 => 'white', 3 => 'green']; //Функция выводит индексы и значения элементов массива function vivod() { global $massiv; foreach($massiv as $key => $value) echo $key . ' => ' . $value . '; '; echo '<br>'; } //Сортировка массива по значению с сохранением индексов asort($massiv); //Выводит: 1 => black; 4 => blue; 3 => green; //2 => red; 5 => white; vivod(); //Сортировка массива по индексу с сохранением индексов ksort($massiv); //Выводит: 1 => black; 2 => red; 3 => green; //4 => blue; 5 => white; vivod(); //Сортировка массива по возрастанию значений sort($massiv); //Выводит: 0 => black; 1 => blue; 2 => green; //3 => red; 4 => white; vivod(); //Сортировка массива по убыванию значений rsort($massiv); //Выводит: 0 => white; 1 => red; 2 => green; //3 => blue; 4 => black; vivod(); //Функция упорядочивает 2 строки по убыванию function sravnit($a, $b) { $r = strcmp($a, $b); if($r == 1) $r = -1; else if($r == -1) $r = 1; return $r; } //Сортировка массива по убыванию usort($massiv, 'sravnit'); //Выводит: 0 => white; 1 => red; 2 => green; //3 => blue; 4 => black; vivod(); ?> |
Функция “usort” сортирует массив по заданному сравнению элементов, которое определяет функция сравнения. В данном примере – “sravnit”. Функция сравнения получает два аргумента и возвращает ноль если они равны; отрицательное число, если первый аргумент ближе к началу; положительное число, если второй аргумент ближе к началу.
Пример 7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php //Объявляется массив $massiv $massiv = [1, 5, 2, 7, 3]; //Объявляется функция определения //входит ли элемент в результирующий массив function func($el) { return $el > 2; } //Фильтрация элементов массива //и возврат массива с отфильтрованными элементами $res = array_filter($massiv, "func"); //Выводит: 1 => 5; 3 => 7; 4 => 3; foreach($res as $key => $value) echo $key . ' => ' . $value . '; '; ?> |
Функция “array_filter” фильтрует элементы массива с помощью функции, определяющей подходи ли элемент для отфильтрованного массива. Отфильтрованный массив возвращается функцией “array_filter”.
Пример 8
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //Объявляется массив $massiv $massiv = ['name' => 'Ivan', 'surname' => 'Petrov', 'age' => 20]; //Определяет есть ли значение в массиве. Выводит: Петров есть if(in_array('Petrov', $massiv)) echo 'Петров есть<br>'; else echo 'Петрова нет<br>'; //Определяет есть ли индекс в массиве. Выводит: Имя есть if(array_key_exists('name', $massiv)) echo 'Имя есть<br>'; else echo 'Имени нет<br>'; //Ищет индекс по значению в массиве. Выводит: Индекс: age echo 'Индекс: ' . array_search(20, $massiv); ?> |
Функция “in_array” определяет есть значение в массиве, “array_key_exists” – есть ли индекс, а “array_search” – находит индекс по значению.
Пример 9
1 2 3 4 5 6 7 8 9 10 11 |
<?php //Объявляется массив $massiv1 $massiv1 = [1, 2, 3]; //Объявляется массив $massiv2 $massiv2 = [4, 5, 6]; //Массивы $massiv1, $massiv2 и ещё один сливаются $res = array_merge($massiv1, $massiv2, [7, 8, 9]); //Выводится результирующий массив: //1; 2; 3; 4; 5; 6; 7; 8; 9; foreach($res as $value) echo $value . '; '; ?> |
Функция “array_merge” производит слияние массивов-аргументов и возвращает массив – результат слияния.