From TableLibraryTutorial of lua-users.org.

```table.foreachi(table, f)
foreaci(table, f)
```

Apply the function f to the elements of the table passed. On each iteration the function f is passed the index-value pair of that element in the table. This is similar to table.foreach() except that index-value pairs are passed, not key-value pairs. If the function f returns a non-nil value the iteration loop terminates.

```> t = { 1,2,"three"; pi=3.14159, banana="yellow" }
> table.foreachi(t, print)
1       1
2       2
3       three
```

Note in the example only the indexed elements of the table are displayed. See the TablesTutorial for more information on key-value and index-value pairs.

Also note that foreachi starts at index , increments the index by one repeatedly, and stops running as soon as it reaches a nil value. This is an example:

```> t = {       = "zero",   --will not be counted
      = "one",    --will be counted; 1
      = "two",    --will be counted; 2
      = "three",  --will be counted; 3
["four"] = "four",   --will not be counted; returns 3
      = "five" }  --will never be reached
> foreachi(t, print)
1       one
2       two
3       three
```

In the above, it starts at t (not t) and counts to t, printing the corresponding values along the way. It then checks t, sees it is nil, and stops running. t is never checked - this will not hit every array index in a table, only the consecutive ones from one up until it hits its first blank index.