Массивы в PHP: типы и операции

Составили шпаргалку по массивам в PHP для начинающих. Рассказали о типах массивов в PHP и об операциях, которые можно совершить над ними.

6К открытий15К показов

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

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

В этой статье мы рассказываем о типах массивов в PHP и об операциях, которые можно совершить над ними.

  1. Типы массивов в PHP
  2. Как создавать массивы в PHP
  3. Как получить элемент массива в PHP по индексу
  4. Как добавить элемент в конец массива PHP
  5. Как удалить последний элемент массива PHP
  6. Получение длины массива в PHP
  7. Как проверить наличие элемента массива в PHP
  8. Как выполнить обход массива в PHP и вывести его элементы
  9. Как выполнить слияние массивов в PHP
  10. Как сортировать массив в PHP

Типы массивов в PHP

1. Индексированные массивы

Это самый обычный тип массива в PHP, где элементы нумеруются целыми числами, начиная с 0, и последовательно увеличиваются.

			$numbers = [1, 2, 3, 4, 5];
$fruits = array('apple', 'banana', 'orange');
		

2. Ассоциативные массивы

В данном типе массивов элементы хранятся в парах ключ-значение, где ключи могут быть строками или целыми числами.

			$user = [
  'name' => 'John',
  'age' => 25,
  'email' => 'john@example.com'
];

$config = array(
  'database' => 'my_db',
  'username' => 'admin',
  'password' => 'secret'
);
		

3. Многомерные массивы

Это тип массива, в котором элементы сами могут быть другими массивами. Такие массивы позволяют хранить иерархически связанные данные.

			$students = [
  ['name' => 'John', 'age' => 20, 'grade' => 'A'],
  ['name' => 'Jane', 'age' => 22, 'grade' => 'B'],
  ['name' => 'Alex', 'age' => 19, 'grade' => 'C']
];

$matrix = array(
  array(1, 2, 3),
  array(4, 5, 6),
  array(7, 8, 9)
);
		

4. Вложенные массивы

Это тип массива, в котором элементы могут содержать другие массивы, создавая более сложную структуру данных.

			$person = [
  'name' => 'John',
  'age' => 25,
  'address' => [
    'street' => '123 Main St',
    'city' => 'New York',
    'country' => 'USA'
  ]
];

$config = [
  'database' => [
    'name' => 'my_db',
    'username' => 'admin',
    'password' => 'secret'
  ],
  'server' => [
    'host' => 'localhost',
    'port' => 8080
  ]
];
		

Как создавать массивы в PHP

1. Создание пустого массива

Создание пустого массива в PHP может быть полезным для программистов, когда они хотят создать массив, к которому будут добавлять элементы в ходе выполнения программы.

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

			$emptyArray = array();
		

или

			$emptyArray = [];
		

2. Создание индексированного массива

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

Использование числовых индексов позволяет эффективно обращаться к элементам массива по их позиции.

			$indexedArray = array("apple", "banana", "orange");
		

или

			$indexedArray = ["apple", "banana", "orange"];
		

3. Создание ассоциативного массива

Ассоциативные массивы в PHP полезны, когда нужно хранить данные в виде пар “ключ” => “значение”.

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

Использование ключей позволяет быстро извлекать и обновлять значения в массиве по имени.

			$associativeArray = array(
    "name" => "John Doe",
    "age" => 25,
    "city" => "New York"
);
		

или

			$associativeArray = [
    "name" => "John Doe",
    "age" => 25,
    "city" => "New York"
];
		

4. Создание многомерного массива

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

Также многомерные массивы представляют собой массивы, в которых элементами являются другие массивы.

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

			$multiDimensionalArray = array(
    array("apple", "banana", "orange"),
    array("red", "yellow", "orange"),
    array("sweet", "tasty", "juicy")
);
		

или

			$multiDimensionalArray = [
    ["apple", "banana", "orange"],
    ["red", "yellow", "orange"],
    ["sweet", "tasty", "juicy"]
];
		

Как получить элемент массива в PHP по индексу

1. Оператор квадратных скобок []

Этот способ наиболее распространен и прост в использовании. Можно использовать оператор квадратных скобок [] и указать индекс элемента внутри них.

			$colors = array("Red", "Green", "Blue");
   echo $colors[0]; // Выведет "Red"
		

2. Функция array_values()

Данная функция возвращает все значения массива в виде нового массива, с индексами, начиная с 0. Затем можно получить элемент массива по новому индексу.

			$colors = array("Red", "Green", "Blue");
   $values = array_values($colors);
   echo $values[1]; // Выведет "Green"
		

3. Функции current() и next()

Эти функции позволяют перемещаться по массиву и получать текущий элемент. Функция current() возвращает текущий элемент массива, а функция next() сдвигает указатель на следующий элемент.

			$colors = array("Red", "Green", "Blue");
   echo current($colors); // Выведет "Red"
   next($colors);
   echo current($colors); // Выведет "Green"
		

Как добавить элемент в конец массива PHP

1. Использование оператора []

Самым простым способом является использование оператора квадратных скобок [] с пустым индексом, чтобы добавить элемент в конец массива.

			$fruits = array("Apple", "Banana");
   $fruits[] = "Orange";
   print_r($fruits); // Выведет: Array ( [0] => Apple [1] => Banana [2] => Orange )
		

2. Использование функции array_push()

Функция array_push() позволяет добавить один или более элементов в конец массива. Синтаксис функции следующий: array_push($array, $element1, $element2, ...).

			$fruits = array("Apple", "Banana");
   array_push($fruits, "Orange", "Mango");
   print_r($fruits); // Выведет: Array ( [0] => Apple [1] => Banana [2] => Orange [3] => Mango )
		

3. Использование оператора +=

Еще одним способом является использование оператора +=, который объединяет два массива. Если левым операндом является пустой массив, то элементы будут добавлены в конец массива

			$fruits = array("Apple", "Banana");
   $fruits += array("Orange");
   print_r($fruits); // Выведет: Array ( [0] => Apple [1] => Banana [2] => Orange )
		

Как удалить последний элемент массива PHP

1. Функция array_pop()

В результате выполнения этого кода последний элемент (“5”) будет удален из массива, а значение этого элемента будет сохранено в переменной `$lastElement`

			$myArray = [1, 2, 3, 4, 5];
$lastElement = array_pop($myArray);
		

2. Функция unset()

При использовании функции unset() вы указываете индекс последнего элемента массива, который нужно удалить, используя count($myArray) - 1. Это вычисляет индекс последнего элемента массива.

			$myArray = [1, 2, 3, 4, 5];
unset($myArray[count($myArray) - 1]);
		

3. Оператор array_slice()

Оператор array_slice() возвращает часть массива, начиная с индекса 0 и заканчивая индексом -1 (или индексом последнего элемента минус единица). В результате получается массив без последнего элемента.

			$myArray = [1, 2, 3, 4, 5];
$myArray = array_slice($myArray, 0, -1);
		

4. Функция array_splice()

Функция array_splice() изменяет исходный массив, удаляя элементы, начиная с указанного индекса. В данном случае мы указываем индекс -1, чтобы удалить последний элемент массива.

			$myArray = [1, 2, 3, 4, 5];
array_splice($myArray, -1);
		

Получение длины массива в PHP

1. Функция count()

Функция count() возвращает количество элементов в массиве. В результате выполнения этого кода переменная $length будет содержать длину массива, то есть значение “5”.

			$myArray = [1, 2, 3, 4, 5];
$length = count($myArray);
		

2. Оператор sizeof()

Оператор sizeof() работает аналогично функции count() и также возвращает количество элементов в массиве.

			$myArray = [1, 2, 3, 4, 5];
$length = sizeof($myArray);
		

3. Функция arraycountvalues()

Функция array_count_values() возвращает ассоциативный массив, где ключами являются уникальные значения из исходного массива, а значениями – количество вхождений каждого значения.

В данном случае мы используем count() для получения длины ассоциативного массива, чтобы узнать количество уникальных значений в исходном массиве.

			$myArray = [1, 2, 3, 4, 5];
$countedArray = array_count_values($myArray);
$length = count($countedArray);
		

4. Цикл foreach

Мы итерируемся по каждому элементу массива с помощью цикла foreach и увеличиваем переменную $length на 1 для каждого элемента. В результате выполнения этого кода длина массива будет сохранена в переменной $length.

			$myArray = [1, 2, 3, 4, 5];
$length = 0;
foreach ($myArray as $element) {
    $length++;
}
		

Как проверить наличие элемента массива в PHP

1. Оператор in_array()

Оператор in_array() проверяет, содержится ли указанный элемент в массиве. В этом примере переменная $exists будет содержать значение true, так как элемент `3` содержится в массиве $myArray.

			$myArray = [1, 2, 3, 4, 5];
$element = 3;
$exists = in_array($element, $myArray);
		

2. Функция array_search()

Функция array_search() возвращает индекс элемента в массиве, если он найден. Если элемент не найден, функция возвращает false.

В данном случае мы проверяем, не равен ли индекс false, чтобы определить, содержится ли элемент в массиве.

			$myArray = [1, 2, 3, 4, 5];
$element = 3;
$key = array_search($element, $myArray);
$exists = ($key !== false);
		

3. Функция array_key_exists()

Функция array_key_exists() проверяет, содержится ли указанный ключ в массиве. В этом примере переменная $exists будет содержать значение true, так как ключ 'key2' существует в массиве $myArray.

			$myArray = ['key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3'];
$key = 'key2';
$exists = array_key_exists($key, $myArray);
		

4. Оператор isset()

Оператор isset() проверяет, определен ли указанный элемент или ключ в массиве. В данном случае переменная $exists будет содержать значение true, так как элемент с ключом 'key2' определен в массиве $myArray.

			$myArray = ['key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3'];
$key = 'key2';
$exists = isset($myArray[$key]);
		

Как выполнить обход массива в PHP и вывести его элементы

1. Цикл for

В этом примере мы используем цикл for, чтобы пройти через каждый индекс массива и вывести его элементы. Код echo $myArray[$i] . ", "; выводит каждый элемент массива, за исключением последнего, и добавляет запятую после каждого элемента.

			$myArray = [1, 2, 3, 4, 5];
$length = count($myArray);
for ($i = 0; $i < $length; $i++) {
    echo $myArray[$i] . ", ";
}
		

2. Цикл foreach

Цикл foreach автоматически итерирует по каждому элементу массива и выполняет указанные действия для каждого элемента. В этом примере мы выводим каждый элемент массива, добавляя запятую после каждого элемента.

			$myArray = [1, 2, 3, 4, 5];
foreach ($myArray as $element) {
    echo $element . ", ";
}
		

3. Цикл while с использованием функций current() и next()

С помощью функции reset() мы устанавливаем указатель текущего элемента массива в начало. Затем, с помощью цикла while, мы получаем текущий элемент с помощью функции current(), выводим его и перемещаем указатель на следующий элемент с помощью функции next(). Цикл продолжается до тех пор, пока есть элементы в массиве.

			$myArray = [1, 2, 3, 4, 5];
reset($myArray);
while ($element = current($myArray)) {
    echo $element . ", ";
    next($myArray);
}
		

Как выполнить слияние массивов в PHP

1. Оператор "+"

Оператор + объединяет элементы обоих массивов, и дубликаты удаляются, чтобы сохранить только уникальные значения.

			$array1 = [1, 2, 3];
   $array2 = [4, 5, 6];
   
   $mergedArray = $array1 + $array2;
   print_r($mergedArray);
		

Вывод:

			Array
   (
       [0] => 1
       [1] => 2
       [2] => 3
       [3] => 4
       [4] => 5
       [5] => 6
   )
		

2. Функция arraymerge()

Функция arraymerge() объединяет элементы обоих массивов в новый массив, сохраняя исходные ключи. Если есть одинаковые ключи, то значение из второго массива заменит значение из первого массива.

			$array1 = [1, 2, 3];
   $array2 = [4, 5, 6];
   
   $mergedArray = arraymerge($array1, $array2);
   printr($mergedArray);
		

Вывод:

			Array
   (
       [0] => 1
       [1] => 2
       [2] => 3
       [3] => 4
       [4] => 5
       [5] => 6
   )
		

3. Оператор "…" в PHP 7.4 и более поздних версиях

С помощью оператора ... (spread operator) мы можем распаковать элементы массивов и объединить их в новый массив.

			$array1 = [1, 2, 3];
   $array2 = [4, 5, 6];
   
   $mergedArray = [...$array1, ...$array2];
   print_r($mergedArray);
		

Вывод:

			Array
   (
       [0] => 1
       [1] => 2
       [2] => 3
       [3] => 4
       [4] => 5
       [5] => 6
   )
		

4. Функция arraymergerecursive()

Функция arraymergerecursive() объединяет элементы обоих массивов в новый массив, сохраняя все значения в виде массивов, если ключи совпадают.

			$array1 = [1, 2, 3];
   $array2 = [4, 5, 6];
   
   $mergedArray = array_merge_recursive($array1, $array2);
   print_r($mergedArray);
		

Вывод:

			Array
   (
       [0] => 1
       [1] => 2
       [2] => 3
       [3] => 4
       [4] => 5
       [5] => 6
   )
		

Как сортировать массив в PHP

1. Функция sort()

Функция sort() сортирует массив в порядке возрастания, переиндексируя элементы массива.

			$array = [3, 1, 2];
   sort($array);
   print_r($array);
		

Вывод:

			Array
   (
       [0] => 1
       [1] => 2
       [2] => 3
   )
		

2. Функция rsort()

Функция rsort() сортирует массив в порядке убывания, переиндексируя элементы массива.

			$array = [3, 1, 2];
   rsort($array);
   print_r($array);
		

Вывод:

			Array
   (
       [0] => 3
       [1] => 2
       [2] => 1
   )
		

3. Функция asort()

Функция asort() сортирует массив в порядке возрастания, сохраняя связь ключей и значений.

			$array = [3, 1, 2];
   asort($array);
   print_r($array);
		

Вывод:

			Array
   (
       [1] => 1
       [2] => 2
       [0] => 3
   )
		

4. Функция arsort()

Функция arsort() сортирует массив в порядке убывания, сохраняя связь ключей и значений.

			$array = [3, 1, 2];
   arsort($array);
   print_r($array);
		

Вывод:

			Array
   (
       [0] => 3
       [2] => 2
       [1] => 1
   )
		

5. Функция ksort()

Функция ksort() сортирует массив по ключам в порядке возрастания, сохраняя связь ключей и значений.

			$array = [3, 1, 2];
   ksort($array);
   print_r($array);
		

Вывод:

			Array
   (
       [0] => 1
       [1] => 2
       [2] => 3
   )
		

6. Функция krsort()

Функция krsort() сортирует массив по ключам в порядке убывания, сохраняя связь ключей и значений.

			$array = [3, 1, 2];
   krsort($array);
   print_r($array);
		

Вывод:

			Array
   (
       [2] => 3
       [1] => 2
       [0] => 1
   )
		

Заключение

Массивы в PHP играют ключевую роль в хранении и управлении данными.

Благодаря разнообразию типов массивов разработчики могут эффективно структурировать данные. Операции над массивами позволяют динамически работать с данными и преобразовывать их согласно требованиям проекта.

Надеемся, шпаргалка оказалась полезной вам, и вы узнали много нового.

Напишите в комментариях, если эта статья помогла вам. Также укажите, чего в ней может не хватать, чем можно дополнить материал или какие новые статьи по PHP нам стоит опубликовать. Мы будем рады обратной связи. ?

Следите за новыми постами
Следите за новыми постами по любимым темам
6К открытий15К показов