首页 > 解决方案 > 按照一定的规则对数组进行排序

问题描述

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

<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>';

谢谢

标签: phparrayssorting

解决方案


推荐阅读