Function Reference

_ArrayUnique

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, "@")