Order of items of a table in a foreach


if I iterate over a table with a foreach, is there a guaranteed order in which they come out? FIFO?


No, this order is not guaranteed; it depends on the sequence of additions/removals as well as on the keys themselves. If you need a guaranteed iteration order, use an array.