Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Космич on February 16, 2019, 12:14:44 AM
-
Понадобилась подпрограмма для поиска заданного значения в массиве и в случае успеха возврата его индекса.
Я хотел сделать более универсальный вариант, но возникла проблема с определением размера массива внутри подпрограммы. Может кто то уже сталкивался с этим и может подсказать?
$arr[0] = "afds"
$arr[1] = "bd3h"
$arr[2] = "ce56"
$name_array = "$arr"
$cell_array = 1
PRINT(GETVAR(STRCONCAT($name_array, "[", GETVAR("$cell_array"), "]" ) ) ) // Значение по индексу возвращает правильно
PRINT(ARRSIZE(GETVAR("$name_array"))) // А вот размер массива не возвращает
HALT
-
короче ладно, сделал пока так, но скорее всего перейду на более узкоспециализированный вариант под свою задачу :'(
$arr[0] = "afds"
$arr[1] = "bd3h"
$arr[2] = "ce56"
SUB(ARRSEARCH, $name_array, $value_in_array, $size_array)
$return = - 1
FOR($cell_array = $size_array, $cell_array > -1, - 1)
IF(GETVAR(STRCONCAT($name_array, "[", GETVAR("$cell_array"), "]" ) ) = $value_in_array)
$return = $cell_array
$cell_array = 0
END_IF
END_CYC
END_SUB
ARRSEARCH("$arr", "bd3h", ARRSIZE($arr)-1)
PRINT($return)
HALT