http://qs1969.pair.com?node_id=787340


in reply to Re: Trying to make a string generated like google
in thread Trying to make a string generated like google

Hi,

I'm trying to do something a bit more complex now:

my @sorted_phrases = sort { $b->{sort_number} <=> $a->{sort_number +}, $b->{count} <=> $a->{count} } values %$strings;


..instead of just:

my @sorted_phrases = sort { $b->{count} <=> $a->{count} } values %$strings;


Basically, what I need to do - is :

1) Sort by the value "count" as they were done before
2) If the 2nd array element has a value of "0" for "count", then it will order them by sort_number thereafter.

I've tried all kinda things - including this messy bit of code - but I can't seem to get it working :(

my @sorted_phrases_2; # my $i = 0; foreach (my $i = 0; $i <= $#sorted_phrases; $i++) { local $_ = $sorted_phrases[$i]; if ($i == 1) { print "BLA BLA XXX - \"$_->{count}\" " . Dumper($_); if ($_->{count} < 1) { my $chosen_id_now = $sorted_phrases[0]->{sort_number} ++ 1; print qq|<br />Current sort was: $sorted_phrases[0]->{ +sort_number} , and new one is $chosen_id_now <br />|; foreach my $tmp (@sorted_phrases) { if ($tmp->{sort_number} == $chosen_id_now) { push @sorted_phrases_2, $tmp; } } } } else { push @sorted_phrases_2, $_; } } @sorted_phrases = @sorted_phrases_2;


Thanks for any ideas - as I'm stumped :(

Cheers

Andy

Replies are listed 'Best First'.
Re^3: Trying to make a string generated like google
by davorg (Chancellor) on Jun 30, 2010 at 07:50 UTC

    I've just logged on for the first time for almost a year and saw your unanswered question. It's really quite simple.

    my @sorted_phrases = sort { $b->{count} <=> $a->{count} or $b->{sort_number} <=> $a->{sort_number} } values %$strings;

    It's really worth reading the Perl FAQ. See How do I sort an array by (anything)?

    --

    See the Copyright notice on my home node.

    Perl training courses