Jump to content

Help with 2D array


Recommended Posts

Hello,

I have a 2D array with made in this way

number-name-surname-address-etc

I need to check for:

  • Duplicate, but only for the name-surname field
  • Unique value.

Assuming this is the name surname field:

AA (avoid)

AA (take this, last duplicate)

BB (take this)

CC (take this)

DD (avoid)

DD (avoid)

DD (take this)

EE (take this)

ecc

I need to get always the last in case of duplicate and the unique value, mading another array. I'll hope i was clear enought. Some help with this? I have try to check but is complicated for me. Thanks

Link to comment
Share on other sites

  • Moderators

HeyTom,

Welcome to the AutoIt forums.

Something like this should do the trick:

#include <Array.au3>

Global $aArray[][] = [["AA", "-"], _
                      ["AA", "+"], _
                      ["BB", "+"], _
                      ["CC", "+"], _
                      ["DD", "-"], _
                      ["DD", "-"], _
                      ["DD", "+"], _
                      ["EE", "+"]]

For $i = UBound($aArray) - 1 To 1 Step -1
    ; Read line
    $sCurrent = $aArray[$i][0]
    ; Look for earlier duplicates
    For $j = $i - 1 To 0 Step -1
        If $aArray[$j][0] == $sCurrent Then
            ; Clear the line - many options to do this for the real array
            $aArray[$j][0] = ""
        Else
            ; Stop looking
            ExitLoop
        EndIf
    Next
    $i = $j + 1

    ;Just for testing
    ;_ArrayDisplay($aArray, $i & " - " & $j, Default, 8)

Next

; Now you have the values you need and can rewrite the array as necessary
_ArrayDisplay($aArray, "Ended", Default, 8)

Please ask if you have any questions.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

HeyTom,

A couple of changes needed:

#include <Array.au3>

Global $aArray[][] = [["Tom", "AA", "-"], _
                      ["Tom", "AA", "+"], _
                      ["Tom", "BB", "+"], _
                      ["Tom", "CC", "+"], _
                      ["Tom", "DD", "-"], _
                      ["Tom", "DD", "-"], _
                      ["Tom", "DD", "+"], _
                      ["Tom", "EE", "+"]]

For $i = UBound($aArray) - 1 To 1 Step -1
    ; Read line
    $sCurrent = $aArray[$i][1]
    ; Look for earlier duplicates
    For $j = $i - 1 To 0 Step -1
        If $aArray[$j][1] == $sCurrent Then
            $aArray[$j][1] = ""
        Else
            ExitLoop
        EndIf
    Next
    $i = $j + 1

    ;_ArrayDisplay($aArray, $i & " - " & $j, Default, 8)

Next

_ArrayDisplay($aArray, "Ended", Default, 8)

Over to you to spot the differences!

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...