<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Сортировка хэша по значениям</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7427.html</link>
    <description>Есть хэш хэшей вида:&lt;br&gt;&lt;br&gt;&#037;list = (&lt;br&gt;  Ivanov =&amp;gt; &#123;&lt;br&gt;    fio =&amp;gt; &quot;Иванов А.А.&quot;,&lt;br&gt;    address =&amp;gt; &quot;192.168.1.1&quot;,&lt;br&gt;    ostatok =&amp;gt; -311.22,&lt;br&gt;  &#125;,&lt;br&gt;  Petrov =&amp;gt; &#123;&lt;br&gt;    fio =&amp;gt; &quot;Петров Б.Б.&quot;,&lt;br&gt;    address =&amp;gt; &quot;192.168.1.2&quot;,&lt;br&gt;    ostatok =&amp;gt; 1100.54,&lt;br&gt;  &#125;,&lt;br&gt;...&lt;br&gt;);&lt;br&gt;&lt;br&gt;Вывод производится так:&lt;br&gt;&lt;br&gt;    foreach $k (sort keys &#037;list) &#123;&lt;br&gt;&lt;br&gt;print $list&#123;$k&#125;&#123;fio&#125;.&quot;:&quot;.$list&#123;$k&#125;&#123;address&#125;.&quot;:&quot;.$list&#123;$k&#125;&#123;ostatok&#125;.&quot;&#092;n&quot;;&lt;br&gt;    &#125;&lt;br&gt;&lt;br&gt;Посоветуйте, как описать sort&#123; ля&#123;$b&#125; &amp;lt;=&amp;gt; ля&#123;$a&#125; &#125;, чтобы организовать вывод списка, отсортированного по размеру остатка.&lt;br&gt;&lt;br&gt;</description>

<item>
    <title>Сортировка хэша по значениям (sn)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7427.html#3</link>
    <pubDate>Thu, 19 Jun 2008 11:02:46 GMT</pubDate>
    <description>Благодарю&lt;br&gt;</description>
</item>

<item>
    <title>Сортировка хэша по значениям (XAnder)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7427.html#2</link>
    <pubDate>Thu, 19 Jun 2008 08:33:25 GMT</pubDate>
    <description>&amp;gt;Посоветуйте, как описать sort&#123; ля&#123;$b&#125; &amp;lt;=&amp;gt; ля&#123;$a&#125; &#125;, чтобы организовать вывод списка, отсортированного по размеру остатка.&lt;br&gt;&lt;br&gt;Самый очевидный вариант:&lt;br&gt;&lt;br&gt;sort &#123;$list&#123;$a&#125;&#123;ostatok&#125; &amp;lt;=&amp;gt; $list&#123;$b&#125;&#123;ostatok&#125;&#125;&lt;br&gt;</description>
</item>

<item>
    <title>Сортировка хэша по значениям (Mil)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7427.html#1</link>
    <pubDate>Thu, 19 Jun 2008 08:24:37 GMT</pubDate>
    <description>Короткий путь -- заменть&lt;br&gt;sort keys &#037;list&lt;br&gt;на&lt;br&gt;sort &#123;$list&#123;$a&#125;&#123;&apos;ostatok&apos;&#125; &amp;lt;=&amp;gt; $list&#123;$b&#125;&#123;&apos;ostatok&apos;&#125;&#125; keys &#037;list&lt;br&gt;&lt;br&gt;но на больших массивах это будет протормаживать. Правильнее в таких случаях использовать преобразование рендола-шварца. В данном случае оно вот так выглядет:&lt;br&gt;&lt;br&gt;map &#123;$_-&amp;gt;&#091;1&#093;&#125; sort &#123;$a-&amp;gt;&#091;0&#093; &amp;lt;=&amp;gt; $b-&amp;gt;&#091;0&#093;&#125; map &#123;&#091;$list&#123;$_&#125;&#123;&apos;ostatok&apos;&#125;, $_&#093;&#125; keys(&#037;list)&lt;br&gt;&lt;br&gt;оно чуть медленней на маленьких списках, но на больших на много быстрей&lt;br&gt;</description>
</item>

</channel>
</rss>
