Описание вспомогательной функции | |
_ArraySearch |
Поиск значения в одномерном или двумерном массиве.
_ArraySearch($var_array,$var_value[,$var_istart=0[,$var_iend=0[,$var_icase=0[,$var_compare=0[,$var_iforward=1[,$var_isubitem=-1]]]]]])
Параметры
$var_array | Массив для поиска |
$var_value |
Значение для поиска в массиве (по умолчанию полное соответствие содержимому ячейки) |
$var_istart |
[необязательный] Индекс массива, от которого начинать поиск |
$var_iend |
[необязательный] Индекс массива, в котором закончить поиск |
$var_icase |
[необязательный] Чувствительность к регистру 0 - (по умолчанию) Поиск без учёта регистра 1 - Поиск с учётом регистра |
$var_compare |
[необязательный] 0 - (по умолчанию) Сравнение с приведением к одному типу, например при $var_icase = 0 эти значения будут являться совпадением: "строка" = 0, "" = 0 или "0" = 0 1 - Частичное совпадение, искомая строка может быть частью строки содержащейся в ячейке массива (StringInStr) 2 - При сравнении учитывать совпадение типа переменной с помощью VarGetType |
$var_iforward |
[необязательный] Если установлено в 0, то искать в массиве от конца к началу (а не от начала к концу) |
$var_isubitem |
[необязательный] Индекс колонки для поиска в двумерном массиве |
Возвращаемое значение
Успех: | Возвращает первый найденный индекс массива, в котором найдено значение $vValue |
Ошибка: | Возвращает -1, устанавливает @error: |
@error: | 1 - $var_array не является массивом |
2 - Массив $var_array не является одномерным или двумерным массивом | |
4 - $var_istart больше $var_iend | |
6 - Значение $var_value не найдено в массиве | |
7 - Размерность массива $var_array более двух |
См. также
_ArrayFindAll
Примеры: | Как создать кнопку? |
exect=$var_aa=StringSplit('AAA|BBB|CCC|DDD|EEE|FFF','|',2)||_ArrayDisplay($var_aa)||$var_ii=_ArraySearch($var_aa,'DDD')||MsgBox(4096,'Результат','$var_ii') ;; пример поиска индекса ячейки, в которой находится фраза 'DDD'
exect=$var_a=StringSplit('%%COMMANDER_PATH%%\Bar\000_TCIMG_Test.bar|%%COMMANDER_PATH%%\Bar\084_AU3.bar|%%COMMANDER_PATH%%\Bar\000_TCIMG_Test_Exe.bar','|')||$var_si=EnvGet('COMMANDER_PATH')&'\WinButtonBar.ini'||$var_sb=IniRead('$var_si','Buttonbar','Buttonbar',Null)||$var_i=Number(_ArraySearch($var_a,'$var_sb')+1)||$var_i=($var_i>3~~Or~~$var_i=0)?1:$var_i||IniWrite('$var_si','Buttonbar','Buttonbar','$var_a[$var_i]')||IniWrite('$var_si','Buttonbar','Buttonbar',Execute('$var_a[$var_i]')) ;; записать один из 3-х заданных путей .bar по кругу в WinButtonBar.ini в секцию [Buttonbar]