Иногда необходимо просмотреть содержимое массива, или записать его в удобном виде в переменную. Для этого приходится вводить цикличиские конструкции непосредственно в код. Данная функция предназначена для того, чтобы избавить Вас от необходимости строить такие конструкции каждый раз. Достаточно указать аргументом имя массива и функция вернёт в результате столбец со значениями.
$args[
- имя массива, содержимое которого необходимо просмотреть.
0
]$args[
- управляющая конструкция. Можно использовать три команды в любых комбинациях:
1
]
[only result]
- выводит только содержимое массива, не показывая его названия и номера ячеек.
[trim]
- отсекает прилегающие пробелы и символы табуляции при выводе значения элемента массива.
[not last]
- исключает добавление разделителя за последним выводимым значением.
$args[
- этим параметром задаётся разделитель между выводимыми значениями. По умолчанию, т.е. когда параметр не указан или равен пустому значению, между выводимыми значениями вставляется символ перевода строки. Чтобы результаты выводились без вставки разделителя, необходимо указать ключ 2
]/se
.
args[
- начало вывода. Номер элемента, с которого начинается вывод значений (включительно).
3
] args[
- окончание вывода. Номер элемента, до которого следует продолжать вывод значений (включительно).
4
]
Данная функция позволяет выводить на экран содержимое сразу нескольких массивов, для сравнения например.
По умолчанию функция выводит содержимое всех массивов в виде таблицы, однако вывод таблицей можно отключить, использовав в последнем аргументе управляющую конструкцию [no table]
. Последним аргументом может быть как имя массива так и управляющая конструкция. Функция считает управляющей конструкцией всякую строку в последнем аргументе, в которой между непробельными символами находится пробельный (или другой недопустимый знак). Прилегающие пробелы в остальных аргументах уничтожаются, поэтому вы можете записать имя массива в аргументе скажем так " $mass "
(апострофы по правилам QSP для записи текстовых значений). Если же вы допустите в имени массива ошибку, функция известит вас об этом.
$args[
- имена массивов, содержимое которых необходимо просмотреть.0 ... 8
]
$args[
- управляющая конструкция. Записывается последним аргументом. Можно использовать следующие конструкции в любых комбинациях:8 ... 1
]
[only result]
- выводит только содержимое массивов, не показывая их названий и номеров ячеек. Таблица при этом на экран выводиться не будет.
[no table]
- выводит массивы на экран, но не облекает их в таблицу.
# | $a | $b |
0 | нулевая ячейка | нулевая ячейка |
1 | первая ячейка | первая ячейка |
2 | вторая ячейка | вторая ячейка |
3 | 3 | |
4 | четвёртая' ячейка | (3,5,6,string,6) |
5 | пятая яче'йка | пятая ячейка |
6 | 6 | |
7 | седьмая ячейка | 7 |
Функция для вставки элемента в массив со сдвигом вправо.
$args[
- название массива.
0
]$args[
- значение, которое хотим присвоить элементу.
1
]args[
- индекс элемента, куда хотим поместить новое значение.
2
]
Функция для удаления из массива всех элементов с указанным значением.
$args[
- название массива.
0
]$args[
- значение, которое хотим удалить из массива.
1
]
Процедура изменяет тип содержимого массива. То есть меняется тип каждой отдельной ячейки.
$args[0
]
- название массива, для которого требуется поменять тип. Можно указывать как с символом '$'
, так и без него перед именем.
$args[1
]
- управление:
[string]
- все ячейки массива приводятся к строковому типу;[number]
- все ячейки массива приводятся к числовому типу;[reverse]
- тип ячеек меняется на противоположный (не знаю, кому это может понадобиться);[hard]
- режим, расширяющий работу режима [string]
, при этом ячейкам, тип которых определяется как 'empty'
(см. функцию em.var.getType
), принудительно присваивается строковое значение '0'
.$args[2
]
- результирующий массив. Если не указано, результат помещается в исходный массив.
Пример заполнения массивов, вызова функции и вывода на экран получившихся значений:
А вот так будет выглядеть содержимое этих массивов:
# | $mass | mass | $mass_str | mass_num | $mass_rev | mass_rev | $mass_strh | $mass_revh | mass_revh |
0 | 123 | 0 | 123 | 123 | 123 | 123 | 123 | ||
1 | 456 | 0 | 456 | 456 | 456 | 456 | 456 | ||
2 | 789 | 789 | 789 | 789 | 0 | 789 | 789 | 0 | |
3 | 901 | 901 | 901 | 901 | 0 | 901 | 901 | 0 | |
4 | stringAbout | 0 | stringAbout | 0 | 0 | stringAbout | 0 | ||
5 | 555 | 0 | 555 | 555 | 555 | 555 | 555 | ||
6 | (123,56,23,9,137) | 0 | (123,56,23,9,137) | 0 | 0 | (123,56,23,9,137) | 0 | ||
7 | 0 | 0 | 0 | 0 | 0 | 0 | |||
8 | 123 | 0 | 123 | 123 | 123 | 123 | 123 | ||
9 | 4569 | 4569 | 4569 | 4569 | 0 | 4569 | 4569 | 0 |
Поскольку функция фактически перебирает массив с созданием нового, она может заметно подвешивать игру при очень больших размерах массива: 7,5 сеекунд для массива из 100000 элементов. В 5.7.0 данная функция требовала 17 секунд на стотысячный массив.
Aleks Versus'Easy Libraries'2013-2024
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2024