根据特定规则对数组进行排序

时间:2020-11-11 01:26:23

标签: php arrays sorting

我想打印我的数组,使其等于重复次数最多的区域。但是,我不会在同一标签中打印这些重复字段。 像示例中一样:

<Variant>
<VariantCode>12111_1</VariantCode>
<VariantQuantity>11</VariantQuantity>
<VariantPrice>33.90</VariantPrice>
<VariantName1>Color</VariantName1>
<VariantValue1>Red</VariantValue1>
<VariantName2>Size</VariantName2>
<VariantValue2>38</VariantValue2>
</Variant>
<Variant>
<VariantCode>13111_1</VariantCode>
<VariantQuantity>11</VariantQuantity>
<VariantPrice>33.90</VariantPrice>
<VariantName1>Color</VariantName1>
<VariantValue1>Blue</VariantValue1>
<VariantName2>Size</VariantName2>
<VariantValue2>39</VariantValue2>
</Variant>
<Variant>
<VariantCode>14111_1</VariantCode>
<VariantQuantity>11</VariantQuantity>
<VariantPrice>33.90</VariantPrice>
<VariantName1>Color</VariantName1>
<VariantValue1>Dark</VariantValue1>
<VariantName2>Size</VariantName2>
<VariantValue2>40</VariantValue2>
</Variant>

数组值和字段是可变的。这里最重要的一点是要使用所有不同的记录来保持最重复的记录。

我最多可以做到以下几点;

<Variant>
<VariantCode>12111_1</VariantCode>
<VariantQuantity>11</VariantQuantity>
<VariantName2>Size</VariantName2>
<VariantValue2>38</VariantValue2>
</Variant>
<Variant>
<VariantCode>12311_1</VariantCode>
<VariantQuantity>11</VariantQuantity>
<VariantName2>Size</VariantName2>
<VariantValue2>39</VariantValue2>
</Variant>
<Variant>
<VariantCode>145111_1</VariantCode>
<VariantQuantity>11</VariantQuantity>
<VariantName2>Size</VariantName2>
<VariantValue2>40</VariantValue2>
</Variant>
<Variant>
<VariantCode>12111_1</VariantCode>
<VariantQuantity>11</VariantQuantity>
<VariantName2>Color</VariantName2>
<VariantValue2>Red</VariantValue2>
</Variant>
<Variant>
<VariantCode>12311_1</VariantCode>
<VariantQuantity>11</VariantQuantity>
<VariantName2>Color</VariantName2>
<VariantValue2>White</VariantValue2>
</Variant>

我的使用代码;

 $output .= "\n\t".'<Variants>';
                        $dizi = explode ("|",$v);
                        foreach( $dizi as $sayi => $ek)
                        {
                            $output .= "\n\t".'<Variant>';
                           
                            
                           
                            $output .= "\n\t".'<VariantQuantity><![CDATA['.html_entity_decode($dizi2[3], ENT_QUOTES).']]></VariantQuantity>';
                            $output .= "\n\t".'<VariantName1><![CDATA['.html_entity_decode($dizi2[0], ENT_QUOTES).']]></VariantName1>';
                            $output .= "\n\t".'<VariantValue1><![CDATA['.html_entity_decode($dizi2[1], ENT_QUOTES).']]></VariantValue1>';
                            $output .= "\n\t".'</Variant>';
                        }

                        $output .= "\n\t".'</Variants>';

谢谢

0 个答案:

没有答案