Perl: the Markov chain saw PerlMonks

### Re(2): Fun with two-dimensional arrays

by FoxtrotUniform (Prior)
 on Aug 09, 2001 at 21:14 UTC ( #103512=note: print w/replies, xml ) Need Help??

in reply to Re: Fun with two-dimensional arrays
in thread Fun with two-dimensional arrays

I guess I obscured my question with too much detail about the problem. I'm asking mostly to satisfy my curiosity.

Without all the

`\$vscr`
baggage, my question is: given an array of arrays (of arbitrary dimensions), how do you hit every element, first visiting the first element in each array, then the second, and so on?

```my \$array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
you'd want to visit in the order 1, 4, 7, 2, 5, 8, 3, 6, 9.

Did that make sense?

update: why @ (in scalar context) and \$# didn't occur to me when I posted this, I don't know. That said, mapcar is damn cool.

Replies are listed 'Best First'.
Re: Re: Re: Fun with two-dimensional arrays
by George_Sherston (Vicar) on Aug 10, 2001 at 04:59 UTC
Why not cycle through the top-level array, shifting off the bottom element in each sub-array? Something like
```@array = ([1,2,3],[4,5,6],[7,8,9]);
while (grep scalar @{ \$_ }, @array) {
for \$i (@array) {
print shift @{ \$i };
}
}
This has the merit that not only do you not need to code (or even initialise, or know) the number and length of sub-arrays, but they can also be of different lengths.

§ George Sherston
Re: Re: Re: Fun with two-dimensional arrays
by bikeNomad (Priest) on Aug 09, 2001 at 21:23 UTC
Assuming you have fixed-size subarrays, you can do this:

```my \$columns = 3;
foreach my \$x (0 .. \$columns - 1)
{
foreach my \$y (0 .. \$#array)
{
print \$array->[\$y]->[\$x]
}
}
update: went back and re-read question.

Create A New User
Node Status?
node history
Node Type: note [id://103512]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2020-02-29 14:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
What numbers are you going to focus on primarily in 2020?

Results (128 votes). Check out past polls.

Notices?