Массивы в PHP

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

Введение

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

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

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

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

<?php $myArray = array(1,2,3,4)

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

echo $myArray[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

Словари

С помощью 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_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() мы написали заранее

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

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

PHP Warning: Array to string conversion in

Пример

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

Array

[29-Mar-2024 01:29:49 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 ) ) )