Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^2: multidimensional array's

by space_monk (Chaplain)
on Dec 28, 2012 at 10:43 UTC ( #1010684=note: print w/ replies, xml ) Need Help??


in reply to Re: multidimensional array's
in thread multidimensional array's

A little known "feature" of fetchall_arrayref is that it will return an array of hashes if you supply it a hash, and if that hash is empty, it will return all the fields.

my @allrows = @{ $sth->fetchrow_arrayref({}) }; # Expand ref, to simpl +ify access

YMMV, but I always find it easier to look at $row{language} than $row[2]. I'm sure there's a mild performance hit, but as long as it's not incredibly slow I'd opt for clarity.

A Monk aims to give answers to those who have none, and to learn from those who know more.


Comment on Re^2: multidimensional array's
Download Code
Re^3: multidimensional array's
by NetWallah (Abbot) on Dec 28, 2012 at 20:11 UTC
    Ah - learned something today - thank you.

    I avoid "fetchall_*", because I mostly process a row-at-a-time , and use the clearer syntax of fetchrow_hashref.

    The OP's questions were based on managing arrays, and I did not want to bring hashes and confuse that discussion.

    Thanks, space_monk.

                 "By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest."           -Confucius

      @All: Thnx a lot for your helpful answers.

      With some additional reading and fiddling around with the syntax I have figured this out now.

      my @allrows =(); while ($row = $sth->fetchrow_arrayref() ) { push @allrows,[@$row]; }; my $titlesfound = @allrows; # Contains the number of results #Show that it works: $loopcount = 0; foreach (@allrows) { my $title1 = ($allrows[$loopcount][1]); print "$title1\n"; $loopcount++; };

      /emgi

        If you do not need the @allrows array, it is wasteful to store data into it. Try this instead:
        my $loopcount = 0; while (my $row = $sth->fetchrow_arrayref() ) { my $title1 = $row->[1]; print "$title1\n"; $loopcount++; }; my $titlesfound = $loopcount;

                     "By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest."           -Confucius

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1010684]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (11)
As of 2014-10-01 19:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (36 votes), past polls