Работа со списками значений в языке PHP

Раздел: Программирование -> Синтаксис PHP

Создание и использование списков значений

Как создать список значений и работать с ним в PHP?

Наиболее эффективный и распространённый способ - использовать индексированные массивы с синтаксисом []. Массив хранит упорядоченный набор значений, доступных по числовому индексу (начиная с 0).


$list = ['яблоко', 'банан', 'вишня'];
echo $list[0]; // яблоко
echo $list[2]; // вишня

конструкции языка php (конструкции языка php)

Пояснение:

  • Список значений создаётся квадратными скобками.
  • Элементы разделяются запятыми.
  • Доступ к элементу - по индексу в квадратных скобках.

Типичные ошибки:

  • Обращение к несуществующему индексу (например, $list[3]) вызывает предупреждение Undefined array key.
  • Путаница с типом индекса: в PHP индекс может быть целым числом, но при использовании строкового ключа массив становится ассоциативным.

Как создать список значений с помощью функции array()?

Традиционный синтаксис array() эквивалентен [] и поддерживается во всех версиях PHP.


$list = array('красный', 'зелёный', 'синий');
echo $list[1]; // зелёный

Forums forums php list (вывод списка форумов через list())

Используется реже из-за более длинной записи, но может встречаться в старом коде.

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

Можно использовать [] без индекса или array_push().


$list[] = 'апельсин';            // добавит в конец
array_push($list, 'груша');      // то же самое
print_r($list);

Php список значений (список значений в php)

Выбор зависит от стиля: [] короче и быстрее.

Ошибка: передача не массива в array_push вызовет ошибку.

Как создать список последовательных чисел?

Функция range() генерирует массив с числами в заданном диапазоне.


$numbers = range(1, 5);
// [1, 2, 3, 4, 5]

Php open tag (открывающий тег php)

Можно указать шаг: range(0, 10, 2) даёт чётные числа.

Как распаковать список значений в переменные?

Конструкция list() (или короткий синтаксис [] с PHP 7.1) присваивает элементы массива переменным.


$info = ['Иван', 25, 'Москва'];
list($name, $age, $city) = $info;
echo $name; // Иван

// Короткий синтаксис:
[$name, $age, $city] = $info;

Php syntax (синтаксис php)

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

Можно оставить пустую позицию в list().


[$name, , $city] = $info; // $age не присвоена

Частая ошибка:

  • Количество переменных не равно числу элементов - лишние переменные получают null, а лишние элементы игнорируются.
  • Попытка использовать list() с ассоциативным массивом вызовет предупреждение, если ключи не числовые.

Расширенные примеры работы со списками

1. Вложенные списки и их распаковка

Пример

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

foreach ($matrix as [$a, $b]) {
    echo "($a, $b) ";
}
// (1, 2) (3, 4) (5, 6)
Результат: (1, 2) (3, 4) (5, 6)

2. Деструктуризация в foreach с ключами

Пример

$items = ['a' => 1, 'b' => 2, 'c' => 3];
foreach ($items as $key => $value) {
    echo "$key => $value, ";
}
// a => 1, b => 2, c => 3,
Результат: a => 1, b => 2, c => 3,

3. Использование list() для обмена значений

Пример

$x = 10;
$y = 20;
[$x, $y] = [$y, $x];
echo "x=$x, y=$y";
// x=20, y=10
Результат: x=20, y=10

4. Создание списка значений из строки с explode()

Пример

$csv = 'Иван,25,Москва';
$parts = explode(',', $csv);
// ['Иван', '25', 'Москва']
[$name, $age, $city] = $parts;
echo "$name, $age лет, $city";
Результат: Иван, 25 лет, Москва

5. Генерация списка с помощью array_fill

Пример

$zeros = array_fill(0, 5, 0);
// [0, 0, 0, 0, 0]
Результат: Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 )

6. Объединение списков функцией array_merge

Пример

$first = [1, 2];
$second = [3, 4];
$merged = array_merge($first, $second);
// [1, 2, 3, 4]
Результат: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

7. Извлечение части списка с array_slice

Пример

$list = [10, 20, 30, 40, 50];
$slice = array_slice($list, 1, 3); // начиная с индекса 1, 3 элемента
// [20, 30, 40]
Результат: Array ( [0] => 20 [1] => 30 [2] => 40 )

Список значений в PHP - comments

En
Php список значений (php)