Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
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
Replies are listed 'Best First'.
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 making s'mores by the fire in the courtyard of the Monastery: (13)
As of 2015-07-30 12:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (271 votes), past polls