Привет всем! Продолжаем ускоренное изучение PHP 🙂 Сегодня — часть 4: массивы в PHP, и что-то еще… поехали!
- Итак — массив в PHP. Интересное описание термина «Массив» — это лист бумаги, на котором записан список планируемых покупок. Если бы мы записывали каждую планируемую покупку на отдельном листике — это было бы использование переменных. А если мы все пишем на один лист — это уже массив. Образно, упрощенно, но вроде как понятно. Сам массив создается следующим образом:
<?php $massiv = array("Помидоры", "Сладкий перец", "Огурцы"); ?>
Как видите — мы создали переменную $massiv, а после указали, что эта переменная массив (array), состоящий из трех элементов: помидоры, сладкий перец, огурцы.
ВАЖНО: количество элементов в массиве считается с нуля!
Теперь разберемся с выводом определенного элемента массива. Для этого номер элемента указываем в квадратных скобках []. На практике это выглядит так:
<?php $massiv = array("Помидоры", "Сладкий перец", "Огурцы"); echo "$massiv[1]"; ?>
Т.е. выводим первый элемент массива. Напоминаю — количество элементов в массиве считается с нуля, а значит: нулевой элемент — помидоры, первый элемент — сладкий перец. Запускаем код — и видим: сладкий перец. Все правильно.
Теперь попробуем вывести весь массив целиком. Для этого я возьму более наглядный массив в виде десяти цифр: $massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Для начала — узнаем, как получить количество элементов в массиве. Для этого используется команда count:
<?php $massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); echo count($massiv); ?>
Результат выполнения кода: 11 элементов.
А теперь — выведем массив целиком. Сразу скажу — вариантов решения этой задачи много 🙂
1 вариант: использовать функцию print_r(), которая выводит информацию о каждом элементе в очень наглядном виде. Что бы вывод был более наглядным — обернем функцию в тег pre.
<?php $massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); echo '<pre>'; print_r($massiv); echo '</p r e>' #уберите пробелы ;) ; ?>
Результат выполнения кода:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
[10] => 10
)
- где очень наглядно виден порядковый номер элемента массива и его значение.
2 вариант: использовать функцию var_dump(), которая выведет не только полную информацию о каждом элементе массива, но и так же тип этого элемента. Запустим код:
<?php $massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); echo '<pre>'; var_dump($massiv); echo '</p r e>' #уберите пробелы :) ; ?>
и получим:
array(11) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
[4]=>
int(4)
[5]=>
int(5)
[6]=>
int(6)
[7]=>
int(7)
[8]=>
int(8)
[9]=>
int(9)
[10]=>
int(10)
}
3 вариант: использование цикла foreach, который был создан специально для поэлементного перебора массивов. Выглядит это следующим образом:
<?php $massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); foreach ($massiv as $element) { echo "$element".'<br>'; }; ?>
упрощенно код можно представить так: идем по массиву $massiv и получаем переменную $element, которую выводим на экран — причем, что бы элементы массива выводили построчно — добавляем (конкатенация команду перехода строки на новую). Получаем столбец элементов массива.
4 вариант: использование цикла while. Пример кода — ниже:
<?php $massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); $minimum = 0; while ($minimum < count($massiv)) { echo $massiv[$minimum].'<br>'; $minimum = $minimum + 1; } ?>
На человеческом языке код можно описать так: вначале создаем переменную $minimum со значением нуль (эта переменная служит неким контролем, на который мы будем опираться в процессе работы над массивом). После этого — идем по массиву до тех пор, пока значение переменной $minimum не перестанет быть меньшим количеству элементов массива $massiv. Получаем элемент — выводим на экран, добавляя в конце символ перехода строки. Теперь — увеличиваем переменную $minimum на единицу (нам это нужно, что бы в итоге цикл перестал работать — иначе уйдем в бесконечность работы 🙂 ) — и берем следующий элемент массива.
5 вариант: использование функции implode(), которая выводит объединяет элементы массива с помощью указанного разделителя (в нашем случае разделителем служит символ переноса строки):
<?php $massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); echo implode("<br>", $massiv); ?>
Так… создавать массивы научились, выводить определенные элементы массива — тоже научились, выводить массивы целиком — разобрались как, а вот как редактировать элементы массива в PHP? Давайте разберемся!
Для реактирования элементов массива в PHP нужно лишь указать номер элемента массива, и его новое значение. Например, код:
<?php $massiv = array("Red", "Yellow", "Green"); echo implode("<br>", $massiv); echo("<br><br>"); $massiv[0] = "Cafe"; echo implode("<br>", $massiv); ?>
- изначально у нас имеется массив, содержащий три цвета: красный (нулевая позиция), желтый (первая позиция) и зеленый (вторая позиция). Теперь возьмем, и укажем новое значение нулевого элемента массива — это будет … КОФЕ! 🙂 Выводим на экран массив — и видим, на нулевой позиции у нас вместо красного цвета — кофе.
Теперь разберемся как удалить элемент массива в PHP. Для этого используется функция unset(). Покажу на практике:
<?php $massiv = array("Red", "Yellow", "Green"); echo implode("<br>", $massiv); echo("<br><br>"); unset($massiv[0]); echo implode("<br>", $massiv); ?>
Имеется массив из трех элементов (да-да, те самые цвета: красный, желтый, зеленый). Выводим массив на экран, а потом — удаляем нулевой элемент (красный цвет), после чего — снова выводим массив на экран. Как видите — красный цвет удален 😉
И да — если использовать unset() без указания номера элемента массива — мы удалим весь массив.
Добавление элементов в массив делается просто — вызываем массив, и показываем элемент, который нужно добавить. Если мы не указываем порядковый номер — то он добавляется в конец. Если указываем — то на указанную позицию:
<?php $massiv = array("1", "2", "3"); echo implode("<br>", $massiv); $massiv[] = "4"; echo("<br><br>"); echo implode("<br>", $massiv); ?>
Где — изначально имеется массив из трех цифр. Добавляем цифру 4, и выводим массив на экран.
И в самом конце сегодняшней записи, посвященной массивам в PHP — сортировка массивов по возрастанию и убыванию. Для более наглядного разбирательства — используем массив из десяти элементов, созданный с помощью генератора случайных чисел (о нем я рассказывал вчера), код генератора выглядит следующим образом:
<?php $massiv = array(); #Создаем пустой массив $minimum = 0; #Создаем переменную с минимальным значением while ($minimum <= 10) { #Создаем цикл, который будет работать пока минимальная переменная не станет равна или больше 10) $random_number = mt_rand(1, 100); #Создаем переменную с помощью генератора случайных чисел $massiv[] = $random_number; #Добавляем в наш массив значение этой переменной $minimum = $minimum + 1; #Увеличиваем значение минимальной переменной на единицу } echo "Готовый массив:<br>"; echo implode("<br>", $massiv); #Выводим готовый массив из случайных чисел на экран ?>
Теперь отсортируем созданный массив по возрастанию. Для этого используем функцию sort():
<?php $massiv = array(); $minimum = 0; while ($minimum <= 10) { $random_number = mt_rand(1, 100); $massiv[] = $random_number; $minimum = $minimum + 1; } echo "Готовый массив:<br>"; echo implode("<br>", $massiv); echo "<br>По возрастанию:<br>"; sort($massiv); echo implode("<br>", $massiv); ?>
И — если нам нужно отсортировать массив по убыванию — используем rsort():
<?php $massiv = array(); $minimum = 0; while ($minimum <= 10) { $random_number = mt_rand(1, 100); $massiv[] = $random_number; $minimum = $minimum + 1; } echo "Готовый массив:<br>"; echo implode("<br>", $massiv); echo "<br>По возрастанию:<br>"; sort($massiv); echo implode("<br>", $massiv); echo "<br>По убыванию:<br>"; rsort($massiv); echo implode("<br>", $massiv); ?>
На сегодня по теме «Массивы в PHP» — все 🙂 Спасибо за внимание. В случае возникновения вопросов — пишите на почту, или в Телеграм 😉