Учебник по массивам PHP: Понять массивы PHP за 5 минут

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

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

Сегодняшний учебник с первого взгляда:

  • Что такое массивы в PHP?
  • Как объявлять массивы в PHP
  • Функции массивов в PHP
  • Практические задачи по работе с массивами в PHP
  • Что изучать дальше

Что такое массивы в PHP?

Проще говоря, массив в PHP — это список, точно так же, как в JavaScript массив — это список значений. Например, вы можете создать массив из целых чисел, например [1, 2, 3, 4, 5], или из смешанных типов данных, например [false, 40, 'purple', $object, 'puppy'].

Это позволяет хранить несколько значений под общим именем, доступ к которому можно получить, обратившись к индексному номеру, с первым элементом под индексом 0.

Как вы видите, общее количество элементов в массиве — это длина массива. В массивах длина является динамической и может изменяться с течением времени.

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

Вот три типа массивов, которые мы можем использовать в PHP:

  • Индексированные/числовые массивы: массивы с числовым индексом
  • Ассоциативные массивы: массивы с именованными ключами
  • Многомерные массивы: массивы, содержащие один или несколько массивов.

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

В Python, например, такие массивы называются словарями, а в JavaScript мы можем кодировать такое же поведение с помощью объектов.

Как объявлять массивы в PHP

До выхода PHP 5.4 мы создавали новый массив с помощью функции array().

<?php
$foo = array(1, 2, 3); // An array of integers created using array fucntion
$bar = ["A", true, 123 => 5]; // Short array syntax, PHP 5.4+
echo $bar[0]; // Returns "A"
echo "n";
echo $bar[1]; // Returns 1 for true
echo "n";
echo $bar[123]; // Returns 5
// echo $bar[1234]; // uncommenting this line will give an error because 1234 is inaccessable
?>

-->
A
1
5
Вход в полноэкранный режим Выход из полноэкранного режима

Примечание: Мы также можем объявить их с помощью квадратных скобок [ ]. Запятая после последнего элемента необязательна, и обычно она ставится для однострочных массивов, таких как array(1, 2).

Функция PHP list() также может быть использована для присвоения переменных более коротким способом.

// define array
$array = ['a', 'b', 'c'];

// without list()
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list()
list($a, $b, $c) = $array;
Вход в полноэкранный режим Выход из полноэкранного режима

Совет: list() также хорошо работает с foreach для упрощения построения.

$arrays = [[1, 2], [3, 4], [5, 6]];

foreach ($arrays as list($a, $b)) {
   $c = $a + $b;
   echo($c . ', '); // 3, 7, >11,
}

Индексированные/числовые массивы

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

<html>
   <body>

      <?php
         /* First way to create array. */
         $numbers = array( 1, 2, 3, 4, 5);

         foreach( $numbers as $value ) {
            echo "Value is $value <br />";
         }

         /* Second way to create array. */
         $numbers[0] = "one";
         $numbers[1] = "two";
         $numbers[2] = "three";
         $numbers[3] = "four";
         $numbers[4] = "five";

         foreach( $numbers as $value ) {
            echo "Value is $value <br />";
         }
      ?>

   </body>
</html>
Вход в полноэкранный режим Выход из полноэкранного режима

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

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

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

<html>
   <body>

      <?php
         /* First way to create array. */
         $salaries = array("mark" => 2000, "janet" => 1000, "asma" => 500);

         echo "Salary of mark is ". $salaries['mark'] . "<br />";
         echo "Salary of janet is ".  $salaries['janet']. "<br />";
         echo "Salary of asma is ".  $salaries['asma']. "<br />";

         /* Second way to create array. */
         $salaries['mark'] = "high";
         $salaries['janet'] = "medium";
         $salaries['asma'] = "low";

         echo "Salary of mark is ". $salaries['mark'] . "<br />";
         echo "Salary of janet is ".  $salaries['janet']. "<br />";
         echo "Salary of asma is ".  $salaries['asma']. "<br />";
      ?>

   </body>
</html>
Вход в полноэкранный режим Выход из полноэкранного режима

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

В многомерном массиве каждый элемент основного массива также является массивом. Доступ к значениям в многомерном массиве осуществляется с помощью нескольких индексов. Синтаксическое объявление двумерных массивов выглядит следующим образом:

 $arrayName = array(array(), array()......array())
Войти в полноэкранный режим Выйти из полноэкранного режима

Рассмотрим пример сложного многомерного массива. Это индексированный массив, содержащий ассоциативные массивы.

<?php
// Define a multidimensional array
$economy = array(
    array(
        "country" => "Germany",
        "currency" => "Euro",
    ),
    array(
        "country" => "Switzerland",
        "currency" => "Swiss Franc",
    ),
    array(
        "country" => "England",
        "currency" => "Pound",
    )
);

echo "Currency of Germany is: " . $economy[0]["currency"]; // Access array at [0] index

?>

-->
Currency of Germany is: Euro
Войти в полноэкранный режим Выход из полноэкранного режима

Функции работы с массивами в PHP

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

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

Вывод структурированного представления массивов

Чтобы вывести массив в удобочитаемом формате, мы используем следующее:

print_r($arrayName)
Войти в полноэкранный режим Выйти из полноэкранного режима

Это выведет наши ключи и связанные с ними значения.

<?php
$fruits = array("Type"=>"Citrus",1=>"Orange",2=>"Grapefruit",3=>"Lemon");//initializing associative array
print_r($fruits);
?>

-->
Array
(
    [Type] => Citrus
    [1] => Orange
    [2] => Grapefruit
    [3] => Lemon
)
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Чтобы вывести длину наших массивов, мы можем использовать функцию count().

count ( Countable|array $value , int $mode = COUNT_NORMAL ) : int
Войти в полноэкранный режим Выход из полноэкранного режима
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// recursive count
echo count($food, COUNT_RECURSIVE); // output 8

// normal count
echo count($food); // output 2

?>

-->
82
Войти в полноэкранный режим Выход из полноэкранного режима

Доступ к элементам массива

Доступ к элементам массива можно получить с помощью array[key].

<?php
$array = array(
    "foo" => "bar",
    42    => 24,
    "multi" => array(
         "dimensional" => array(
             "array" => "foo"
         )
    )
);

var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>

-->
string(3) "bar"
int(24)
string(3) "foo"
Вход в полноэкранный режим Выйти из полноэкранного режима

Возврат всех значений массива

Мы можем вернуть значения нашего массива с помощью функции PHP array_values.

array_values ( array $array ) : array
Вход в полноэкранный режим Выход из полноэкранного режима
<?php
$array = array("size" => "M", "color" => "yellow");
print_r(array_values($array));
?>

-->
Array
(
    [0] => M
    [1] => yellow
)
Войти в полноэкранный режим Выход из полноэкранного режима

Перемещение по массивам

При работе с массивами часто требуется выполнить итерацию по массиву и что-то сделать с элементами, например, добавить их или отобразить. Наиболее распространенным способом итерации массива в PHP является использование foreach.

Вы также можете использовать цикл for, но foreach обычно проще в написании и чтении.

foreach ($array as $key => $value) {
    echo "Key is $key.";
    echo "Value is $value.";
}
Вход в полноэкранный режим Выход из полноэкранного режима

Что изучать дальше

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

  • Комбинирование функций массивов
  • Преобразование в массивы
  • Индексированные массивы без ключа
  • Определение классов в PHP

Чтобы начать изучать эти и другие понятия, ознакомьтесь с курсом Educative «Изучаем PHP с нуля». Этот интерактивный курс познакомит вас с фундаментальными концепциями PHP. Он начинается с простой программы Hello world и переходит к рассмотрению таких общих понятий, как условные утверждения и циклы.

К моменту окончания курса вы будете хорошо разбираться в основах PHP и будете готовы к изучению продвинутых концепций.

Счастливого обучения!

Продолжить чтение о PHP и массивах на Educative

  • Самоучитель PHP: Начните работу с PHP с нуля
  • Массивы в Java: как объявлять и инициализировать массивы в Java
  • Структуры данных 101: учебник по массивам в JavaScript

Начните обсуждение

Что вы хотите узнать о PHP в следующий раз? Была ли эта статья полезной? Дайте нам знать в комментариях ниже!

Оцените статью
devanswers.ru
Добавить комментарий