1次元配列のユニークな要素を返します。
#Include <Array.au3>
_ArrayUnique($aArray[, $iDimension = 1 [, $iBase = 0 [, $iCase = 0 [, $vDelim = "|"]]]])
パラメータ
$aArray | 使用する配列 |
$iDimension | [オプション] 使用する配列の次元 |
$iBase | [オプション] 配列のインデックスが0始まりか、1始まりか。デフォルトは0始まり |
$iCase | [オプション] 処理で大文字小文字を区別するかどうかのフラグ |
$vDelim | [オプション] 区切り文字として使われる1文字以上の文字。使いやすいかどうかはわかりません |
返し値
成功: | その次元のユニークな要素だけを格納した1次元配列を返します |
失敗: | 0を返し、@Errorを設定します |
@error: | 0 - 正常終了 |
1 - パラメータが配列でない場合、0を返します | |
2 - その他の理由で_ArrayUniqueが失敗しました | |
3 - 配列の次元が無効です。0より大きい整数でなければなりません |
注意
返された配列の最初の要素($array[0])には返された文字列の数がはいっています。以降の要素($array[1], $array[2] etc.)にはユニークな文字列がはいっています。
関連
_ArrayMax, _ArrayMin
例
; *****************************************************************************
例1 - 内容に重複のある1次元配列を宣言
; 内容に重複のない新しい配列を作成するのに_ArrayUniqueを使用
;
*****************************************************************************
#include <Array.au3>
Dim $aArray[10] = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
_ArrayDisplay($aArray, "$aArray")
$aNewArray = _ArrayUnique($aArray) ;デフォルトのパラメータを使用
_ArrayDisplay($aNewArray, "$aNewArray represents the 1st Dimension of $aArray")
; ******************************************************************************************
例2 - 内容に重複のある2次元配列を宣言
; 内容に重複のない新しい1次元配列を作成するのに_ArrayUniqueを使用
; ******************************************************************************************
#include <Array.au3>
Dim $aArray[6][2] = [[1, "A"],[2, "B"],[3, "C"],[1, "A"],[2, "B"],[3, "C"]]
_ArrayDisplay($aArray, "$aArray")
$aNewArray = _ArrayUnique($aArray) ;デフォルトのパラメータを使用
_ArrayDisplay($aNewArray, "$aNewArray represents the 1st Dimension of $aArray")
$aNewArray = _ArrayUnique($aArray, 2) ;2次元目を使用
_ArrayDisplay($aNewArray, "$aNewArray represents the 2nd Dimension of $aArray")
; *****************************************************************************************
例3 - 内容に重複のある1次元配列を宣言
;
大文字小文字を区別して内容に重複のない新しい1次元配列を作成するのに_ArrayUniqueを使用
; *****************************************************************************************
#include <Array.au3>
Dim $aArray[6][2] = [[1, "A"],[2, "B"],[3, "C"],[1, "a"],[2, "b"],[3, "c"]]
_ArrayDisplay($aArray, "$aArray")
$aNewArray = _ArrayUnique($aArray, 1, 0, 1) ;デフォルトのパラメータを使用。大文字小文字を区別
_ArrayDisplay($aNewArray, "$aNewArray represents the 1st Dimension of $aArray")
$aNewArray = _ArrayUnique($aArray, 2, 0, 1) ;デフォルトのパラメータを使用。大文字小文字を区別
_ArrayDisplay($aNewArray, "$aNewArray represents the 2st Dimension of $aArray")
; *****************************************************************************************
例4 - 内容に重複があり、"|"を含む1次元配列を宣言
; 内容に重複のない新しい配列を作成するのに_ArrayUniqueを使用
; *****************************************************************************************
#include <Array.au3>
Dim $aArray[6][2] = [[1, "|A"],[2, "B"],[3, "C"],[1, "|A"],[2, "B"],[3, "C"]]
Local $sMsgBox
$aNewArray = _ArrayUnique($aArray, 2) ;2次元目を使用
For $i = 0 To $aNewArray[0]
$sMsgBox &= "[" & $i & "]: " & $aNewArray[$i] & @CRLF
Next
;_ArrayDisplayで"|"を含む要素を表示するためにはパラメータを変更しなければならない
_ArrayDisplay($aNewArray, "$aNewArray represents the 1st Dimension of $aArray", -1, 0, "@")