Массивы в PHP

Содержание
Введение
Создать массив
is_array(): проверка на тип
Обратиться к элементу массива
Пройтись по всем элементам
Получить длину массива
Обратиться к элементу по его индексу
in_array(): Проверить на принадлежность
Словарь
Добавить к массиву
array_search(): найти индекс по значению
Удалить элементы
Вывести содержимое массива
Вывести содержимое вложенного массива
Похожие статьи

Введение

Массив — упорядоченный набор элементов, каждый из которых хранит одно значение, идентифицируемое с помощью одного или нескольких индексов.

В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа, а в качестве индексов выступают целые числа.

Создать массив

Пример создания массива

<?php $sites = array("heihei.ru", "testsetup.ru", "topbicycle.ru");

Обратиться к элементу массива можно следующим образом

echo $sites[0];

heihei.ru

is_array()

Проверить является ли объект массивом

<?php $sites = array("heihei.ru", "testsetup.ru", "topbicycle.ru"); echo is_array($sites); echo is_array("string");

1

Если объект является массивом вернётся 1, но если не является ни 0 ни скажем -1 не вернётся.

Пройтись по всему массиву

Чтобы вывести на экран все элементы массива можно написать функцию show_array()

<?php $arr = array(1, 2, 3, 4); function show_array($arr) { foreach ($arr as &$value) { echo $value; echo '<br>'; unset($value); } } show_array($arr);

1
2
3
4

Эта функция работает только с простыми массивами у которых нет вложенных массивов.

Получить длину массива

<?php $my_array = array("one", "two", "three"); array_length = count($my_array); echo($array_length);

3

Обратиться к элементу по его индексу

<?php $my_array = array("one", "two", "three"); $indexed_array = array_values($my_array); echo$indexed_array[1];

two

in_array()

С помощью in_array() можно проверить принадлежит объект массиву или нет.

Официальная документация

<?php $os = array("Unix", "Windows", "Linux"); if (in_array("Unix", $os)) { echo "Got Unix"; } if (in_array("BolgenOS", $os)) { echo "Got BolgenOS"; } ?>

Got Unix

Словари

С помощью array() можно создавать словари

<?php $myArray = array( 0 => 'Big', 1 => 'Small', 2 => 'Up', 3 => 'Down' );

Обратиться к элементу массива можно следующим образом

echo $myArray[0];

Big

<?php $myArray = array( 'a' => 'Big', 'b' => 'Small', 'c' => 'Up', 'd' => 'Down' );

Обратиться к элементу массива можно следующим образом

echo $myArray['b'];

Small

Добавить элемент к массиву PHP

Допустим у нас есть массив из двух чисел, который можно посмотреть функцией show_array()

<?php $a = array(1, 2); show_array($a);

1
2

Добавить к нему ещё один элемент можно с помощью array_push()

array_push($a, 3) show_array($a);

1
2
3

Если нужно добавить элемент в начало массива - пригодится функция array_unshift()

<?php $a = array(1, 2); array_unshift($a, 3); show_array($a); ?>

3
1
2

Найти индекс элемента по значению

Если известно значение array_search() найдёт индекс первого элемента массива с таким значением

<?php $a = array("a", "b", "c"); echo(array_search("c", $a));

2

Удалить элемент из массива

Функция unset() удаляет из массива элемент по его индексу

<?php $a = array("a", "b", "c"); show_array($a); unset($a[1]); show_array($a);

a
b
c
a
c

Функцию show_array() мы написали заранее

Можно обойтись и без неё - с помощью implode()

<?php $cities = array("Luhamaa", "Narva", "Tartu"); $arraydata = implode(',' , $cities); echo $arraydata; unset($cities[1]); $arraydata = implode(',' , $cities); echo $arraydata; ?>

Luhamaa,Narva,Tartu

Luhamaa,Tartu

Если нужно удалить из массива несколько последовательных элементов - пригодится функция array_splice()

<?php $cities = array("Luhamaa", "Narva", "Parnu", "Tallinn", "Tartu"); $arraydata = implode(',' , $cities); echo $arraydata; array_splice($cities, 1, 2); $arraydata = implode(',' , $cities); echo $arraydata; ?>

Luhamaa,Narva,Parnu,Tallinn,Tartu

Luhamaa,Tallinn,Tartu

Вывести содержимое массива

Если попытаться "распечатать" массив с помощью echo появится PHP Warning а вместо содержимого будет выведена строка "Array"

PHP Warning: Array to string conversion in

Пример

<?php $b = array("a", "b", "c"); echo $b;

Array

[22-Apr-2025 20:23:31 Europe/Moscow] PHP Warning: Array to string conversion in array.php on line 4

Для такого простого массива эта проблема решается с помощью implode()

<?php $b = array("a", "b", "c"); $arraydata = implode(',' , $b); echo $arraydata;

a,b,c

Минус в том, что implode() разбирает только первый уровень вложенности

Если массив содержит вложенный массив

$с = array("a", "b", array("c", "d", "e")); $arraydata = implode(',' , $с); echo $arraydata;

то массив ["c", "d", "e"] будет обработан с тем же предупреждением.

a,b,Array

Вывести содержимое вложенного массива

Альтернативные способ вывода содержимого массива - использование print и json_encode()

Этот вариант работает не только с простыми, но и с вложенными массивами.

<?php $simple_array = array("a", "b", "c"); $nested_array = array("a", "b", array("c", "d", array("e", "f", "g"))); print json_encode($simple_array); print json_encode($nested_array);

["a","b","c"]["a","b",["c","d",["e","f","g"]]]

С помощью print_r() можно вывести содержимое вложенного массива, правда формат вывода достаточно специфический

print_r($nested_array);

Array ( [0] => a [1] => b [2] => Array ( [0] => c [1] => d [2] => Array ( [0] => e [1] => f [2] => g ) ) )

Автор статьи: Андрей Олегович

Похожие статьи
PHP
Массивы
Циклы, ветвления
Дата и время. Часовые пояса
gettype(): определить тип переменной PHP
json_decode
Как получить ширину экрана с помощью PHP
Узнать свой HTTP_USER_AGENT
Классы в PHP 8
substr: обрезать строку
Запросы к REST API на PHP
$_SERVER['REQUEST_URI']: текущая url
Работа с базами данных
Работа с cookies
PHP sessions
Аутентификация и авторизация в PHP 8
Мои скрипты
Разбор ошибок

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: