Function Reference

_ArraySearch

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