Массивы в PHP

PHP для чайников (в моем лице) — часть 4

Привет всем! Продолжаем ускоренное изучение PHP 🙂 Сегодня — часть 4: массивы в PHP, и что-то еще… поехали!

  1. Итак — массив в 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» — все 🙂 Спасибо за внимание. В случае возникновения вопросов — пишите на почту, или в Телеграм 😉