Well... maybe one you'll need your listview sorted, who knows... If it happens, please have a look at the 3 pics below :
The pic above could represent a 2D array of your listview items just after it has been created (with only one data column on the right, to make these explanations simpler)
11 rows, 1 column in LV, content of the column (unsorted) => "CC" , "MM" ... "HH"
Gui ID's for your items start at 7 because :
* Gui ID's always start at 3 and...
* ...you already created 4 controls before ($sLb, $nImp, $idButton, $idListview) which were assigned to GUI ID's 3, 4, 5, 6
LV ID and LV Index got the same value just after the LV is created (from 0 to 10)
The pic above shows what happens when you sort using the _GUICtrlListView_SimpleSort() function :
Content of cells is now sorted "AA" , "CC" ... "ZZ"
LV ID = LV index because Windows didn't make the sort, all the sorting part is included in the UDF's (it would be same if you ever use one day ArrayMultiColSort() from Melba23 : LV ID = LV Index after the MultiColSort)
The pic above shows what happens when you sort using _GUICtrlListView_SortItems()
Content of cells is sorted "AA" , "CC" ... "ZZ" but all LV indexes have changed (they're no more equals to LV ID's) because Windows did the sort when LVM_SORTITEMSEX message was called (MSDN's explanations in my precedent post)
So if you ever use this way of sorting, then you'll need _GUICtrlListView_MapIndexToID() and _GUICtrlListView_MapIDToIndex() to update your array accordingly.
I think the quickest way to access a value directly in an Array is to use ArrayBinarySearch() but if you do this, the search column must be sorted in ascending order before the search is done (help file, topic ArrayBinarySearch)
As you're saying that you won't sort the LV, why don't you just use ArrayBinarySearch() in the 1st pic, where both GUI ID column and LV Index column are already sorted ?
Checking quickly a value in the GUI ID column will indicate you its corresponding LV index value... and vice-versa
Hope it helps and good luck