[редактировать]

Язык PHP: Массивы и списки

Основы / Математика / Строки и текст / Массивы и списки / Разные ошибки / О сложном

Работа с массивами и списками в PHP



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

Для создания массива в php предусмотрена следующая конструкция:

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

Для объявления массивов используются квадратные скобки [ и ].

Однако существует и старая конструкция для объявления массивов, более громоздкая и неудобная:

$array = array(1, 2, 3, 4, 5, 6);

Вы также можете объявить именованный массив с ключами, через символ =>:

$array = ['x' => 10, 'y' => 20, 'score' => 90];

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

$array = ['x' => 10, 'y' => 20];

alert($array['x']); // выведет в сообщении 10.

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

Простой способ перебора всех элементов массива.

Для этого в php есть специальный цикл foreach, который перебирает все элементы массива, например:

$array = [1, 2, 3, 4];

foreach ($array as $value) {
    alert($value);
}

Вы также можете перебирать массив вместе с его ключами:

$array = ['x' => 10, 'y' => 20, 'z' => 30];

foreach ($array as $key => $value) {
    alert("$key = $value");
}

foreach работает и для списков UI объектов, например для свойства ->items.


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

Для этого используйте функцию count(), это очень просто:

$array = [1, 2, 3];

$result = count($array);

Или для компонента список:

$result = count($this->listView->items);

Как проверить, что массив пустой?

Для проверки на то что массив пустой, в php есть небольшое упрощение:

$array = [];

if (!$array) {
    alert('Массив пустой');
}

PHP умеет сам проверять, пустой массив или нет.

Осторожно, это не работает для списков-объектов, для них используйте count() == 0.


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

Описание функций по склейке массивов - join, implode и т.п.

Для того, чтобы сконвертировать массив в строку, есть класс php\lib\str и метод join:

use php\lib\str;

$array = [1, 2, 3];

$message = str::join($array, '-');

alert($message);

В сообщении будет выведено 1-2-3.