1次元、2次元配列内のエントリーを見つけます。配列をソートする必要がないこと以外は_ArrayBinarySearch()と同様です。
#Include <Array.au3>
_ArraySearch(Const ByRef $avArray, $vValue [, $iStart = 0 [, $iEnd = 0 [, $iCase = 0 [, $iPartial = 0 [, $iForward = 1 [, $iSubItem = -1]]]]]])
パラメータ
$avArray | 検索する配列 |
$vValue | $avArrayから探す値 |
$iStart | [オプション] 配列の検索開始インデックス |
$iEnd | [オプション] 配列の検索終了インデックス |
$iCase | [オプション] 1に設定すると、大文字小文字を区別します |
$iPartial | [オプション] 1に設定すると、部分検索を実行します |
$iForward | [オプション] 0に設定すると、(先頭から末尾方向の代わりに)配列末尾から先頭に向かって検索します |
$iSubItem | [オプション] 2次元配列を検索する場合のサブインデックス |
返し値
成功: | $vValueが見つかった位置のインデックスを返します |
失敗: | -1。@errorを設定します |
@error: | 1 - $avArrayは配列ではありません |
2 - $avArrayは1次元配列でも2次元配列はありません | |
4 - $iStartが$iEndよりも大きいです | |
6 - $vValueが配列内に見つかりませんでした | |
7 - $avArrayの次元が高すぎます | |
(3, 5 - 非推奨エラーコード) |
注意
この関数は_ArrayBinarySearch()より遅いですが、配列の並びを変更できない場合に便利です。
関連
_ArrayBinarySearch, _ArrayFindAll
例
#include <Array.au3>
;===============================================================================
例1 (1次元配列を使用)
;===============================================================================
Local $avArray[6] = [ _
"String0, SubString0", _
"String1, SubString1", _
"String2, SubString2", _
"String3, SubString3", _
"String4, SubString4", _
"String5, SubString5"]
_ArrayDisplay($avArray, "$avArray")
$sSearch = InputBox("_ArraySearch() demo", "String to find?")
If @error Then Exit
$iIndex = _ArraySearch($avArray, $sSearch, 0, 0, 0, 1)
If @error Then
MsgBox(0, "Not Found", '"' & $sSearch & '" was not found in the array.')
Else
MsgBox(0, "Found", '"' & $sSearch & '" was found in the array at position ' & $iIndex & ".")
EndIf
;===============================================================================
例2 (2次元配列を使用)
;===============================================================================
Local $avArray[6][2] = [ _
["String0", "SubString0"], _
["String1", "SubString1"], _
["String2", "SubString2"], _
["String3", "SubString3"], _
["String4", "SubString4"], _
["String5", "SubString5"]]
_ArrayDisplay($avArray, "$avArray")
$sSearch = InputBox("_ArraySearch() demo", "String to find?")
If @error Then Exit
$sColumn = InputBox("_ArraySearch() demo", "Column to search?")
If @error Then Exit
$sColumn = Int($sColumn)
$iIndex = _ArraySearch($avArray, $sSearch, 0, 0, 0, 1, 1, $sColumn)
If @error Then
MsgBox(0, "Not Found", '"' & $sSearch & '" was not found on column ' & $sColumn & '.')
Else
MsgBox(0, "Found", '"' & $sSearch & '" was found in the array at position ' & $iIndex & ' on column ' & $sColumn & '.')
EndIf