Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: How do I combine arrays and array of hashes?

by fullermd (Priest)
on Dec 31, 2008 at 06:46 UTC ( [id://733423]=note: print w/replies, xml ) Need Help??


in reply to How do I combine arrays and array of hashes?

The question isn't quite clear as to the desired outcome. I'll read it as: you want to turn two one-element arrays, each of whose element is a hashref, into one one-element array, whose element is a hashref of the combined hashes. That seems a little weird.

But here's one idea:

@aoh2 = ({map { %$_ } (@aoh1, @aoh2)});

It does the same thing with multiples; e.g., if one of the arrays has multiple hashrefs in it, it still gets rolled up into one output:

@aoh1 = ({ 'key1' => 'value1', 'key2' => 'value2' }); @aoh2 = ({ 'key3' => 'value3', 'key4' => 'value4' }, { 'key5' => 'value5', 'key6' => 'value6' }); @aoh2 = ({map { %$_ } (@aoh1, @aoh2)});
Output:
@aoh2 = ( { 'key5' => 'value5', 'key2' => 'value2', 'key6' => 'value6', 'key4' => 'value4', 'key1' => 'value1', 'key3' => 'value3' } );

Replies are listed 'Best First'.
Re^2: How do I combine arrays and array of hashes?
by eye (Chaplain) on Jan 01, 2009 at 11:28 UTC
    As fullermd notes, the OP's question is a bit unclear. If the intent was to combine arrays of hashes and produce a simple array (an operation not subject to problems with conflicting keys), fullermd's solution can be modified to:
    @aoh3 = map {values %$_} (@aoh1, @aoh2);

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (7)
As of 2024-04-19 10:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found