This draws a sphere at coordinate {1,1,1} with a radius of 1/2 (PlotRange specifies the extent of the drawing area; you can ignore it for now):
Graphics3D[
Sphere[{1, 1, 1}, 1/2],
PlotRange -> {{0, 6}, {0, 6}, {0, 6}}]
Change the coordinate to draw the sphere somewhere else:
Graphics3D[
Sphere[{2, 4, 3}, 1/2],
PlotRange -> {{0, 6}, {0, 6}, {0, 6}}]
Table makes arrays of things. Use Table to draw a whole array of spheres.
This makes an array of 3 numbers:
Table[10 i, {i, 3}]
With two “indices”, you get a two-dimensional array (an array of arrays):
Table[10 i +j, {i, 3}, {j, 3}]
This uses Table to make a one-dimensional array of spheres:
Graphics3D[
Table[Sphere[{i, 1, 1}, 1/2], {i, 5}],
PlotRange -> {{0, 6}, {0, 6}, {0, 6}}]
Add an index to get a two-dimensional array of spheres:
Graphics3D[
Table[Sphere[{i, j, 1}, 1/2], {i, 5}, {j, 5}],
PlotRange -> {{0, 6}, {0, 6}, {0, 6}}]
Add a third index to get a three-dimensional array of spheres:
Graphics3D[
Table[Sphere[{i, j, k}, 1/2], {i, 5}, {j, 5}, {k, 5}],
PlotRange -> {{0, 6}, {0, 6}, {0, 6}}]
You can remove the PlotRange; without it, the drawing area is automatically made just large enough to contain the spheres:
Graphics3D[Table[Sphere[{i, j, k}, 1/2], {i, 5}, {j, 5}, {k, 5}]]
Graphics3D[Table[Sphere[{i, j, k}, 1/2], {i, 5}, {j, 5}, {k, 5}]]