If you're wondering the difference between for and foreach, you can think the for as looping a counter whereas foreach loops through elemenents in a collection.
Please refer to:
About the code block, it's unclear why you have the variable a which stores the length of your array. You don't seem to use it anywhere.
Also the sorting of the array is done in each iteration but the contents of the array never changes, why?
What actually happens, in the first iteration you print the first element in the array which is 2. After that you sort the array and print the second element which after sorting is again 2. This means that you don't print all the elements since 1 is never printed.
Should the sort be before the iteration?