配列内の値を検索する方法
スポンサーリンク
PowerShell で配列内の要素の値を検索するには IndexOf を使用します。IndexOf は指定した値を配列の先頭から検索し、最初に一致した場所のインデックスを返します。もし一致しない場合は IndexOf は -1 を返します。
最初に見つかった場所を検索する
PowerShell(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # 要素が 5 個の配列を作成 $ary_names = @('太郎','次郎','三郎','四朗','五郎') # 配列から太郎を検索し、その添え字を取得 $idx = [Array]::IndexOf($ary_names,'太郎') # 1番目なので0と表示される。 Write-Host $idx # 配列から三郎を検索し、その添え字を取得 $idx = [Array]::IndexOf($ary_names,'三郎') # 3番目なので2と表示される。 Write-Host $idx # 配列から五郎を検索し、その添え字を取得 $idx = [Array]::IndexOf($ary_names,'五郎') # 5番目なので4と表示される。 Write-Host $idx # 配列から花子を検索し、その添え字を取得 $idx = [Array]::IndexOf($ary_names,'花子') # 存在ないので-1と表示される。 Write-Host $idx |
上記の実行結果は次の通りです。
実行結果 | |
1 2 3 4 | 0 2 4 -1 |
同じ値が複数存在する場合、全ての場所を返す
IndexOf は第三引数で検索を開始する場所を指定できます。これを使用することで配列に同じ値が複数値がある場合もすべてのインデックスを検索することができます。サンプルコードは次の通りです。
PowerShell(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | # 要素が 5 個の配列を作成 $ary_names = @('太郎','花子','太郎','花子','太郎') $idx = -1 $counter = 0 while($TRUE){ $idx = [Array]::IndexOf($ary_names, '太郎', $idx + 1) if($idx -ne -1){ $counter ++ Write-Host ('太郎の' + [string]$counter + "個目のインデックス→" + [string]$idx) }else{ break } } Write-Host ('太郎は全部で' + [string]$counter + '個存在します。') $idx = -1 $counter = 0 while($TRUE){ $idx = [Array]::IndexOf($ary_names, '花子', $idx + 1) if($idx -ne -1){ $counter ++ Write-Host ('花子の' + [string]$counter + "個目のインデックス→" + [string]$idx) }else{ break } } Write-Host ('花子は全部で' + [string]$counter + '個存在します。') |
上記の実行結果は次の通りです。
実行結果 | |
1 2 3 4 5 6 7 | 太郎の1個目のインデックス→0 太郎の2個目のインデックス→2 太郎の3個目のインデックス→4 太郎は全部で3個存在します。 花子の1個目のインデックス→1 花子の2個目のインデックス→3 花子は全部で2個存在します。 |
スポンサーリンク
- 配列
- 配列の要素数を確認する方法
- 連想配列(ハッシュ)を使用する
- 連想配列(ハッシュ)のキーの一覧を取得する方法
- 配列内の値を検索する方法
- 配列をソートする(昇順・降順)
- 配列内の重複した値を削除する方法
- 配列の要素の値を連結して一つの文字列にする方法
- 変数が配列かを調べる方法
- 配列に要素を追加する方法
- 空の配列を作成する方法
- for で配列の全ての要素を処理する方法
- foreach で配列の全ての要素を処理する方法
- 空の連想配列(ハッシュ)を作成する方法
- 連想配列(ハッシュ)に指定したキーが含まれるかを確認する方法
- 連想配列(ハッシュ)に指定した値が含まれるかを確認する方法
- foreach で連想配列(ハッシュ)の全ての要素を処理する方法
- 連想配列(ハッシュ)をキーや値で並び替える方法(連想配列のソート)
- 配列に指定した値が含まれるかを確認する方法
- 配列の先頭の要素を削除する方法