array set array1 [list {123} {Abigail Aardvark} \ {234} {Bob Baboon} \ {345} {Cathy Coyote} \ {456} {Daniel Dog} ] ;# ;# Simply iterating through an array with a foreach loop: ;# foreach id [array names array1] { puts "ID: $id belongs to $array1($id)" } ;# ;# Two procs iterating through the same array with iteration commands ;# proc proc1 {arrayVar searchid} { global $arrayVar upvar $searchid id set id [array nextelement $arrayVar $id]; while {$id < 200} { set id [array nextelement $arrayVar $id]; if {[array anymore $arrayVar $id] == 0} { return -1} } return id; } proc proc2 {id arrayVar searchid} { global $arrayVar upvar $searchid id while {$id < 400} { puts "ID: $id is between 200 and 400: $arrayVar($id) set id [array nextelement $arrayVar $id]; } } set searchId [array startsearch array1]; set id1 [proc1 array1 searchId]; proc2 $id1 array1 searchId;