php - 按照一定的规则对数组进行排序
问题描述
我想打印我的数组等于重复最多的区域。但我不会在同一个标签中打印这些重复的字段。就像在示例中一样:
<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>';
谢谢
解决方案
推荐阅读
- python - Python ftplib 可以在特定时间保持 FTP 下载吗?
- javascript - 在组件中使用 getStaticProps
- python - Dataflow Flex 模板验证失败,没有给出任何理由
- c - CS50 Speller:valgrind 测试说字节仍然可以在 3 个块中到达
- android - Retrofit2:java.io.EOFException:第 1 行第 1 列路径 $ 输入结束
- swift - 在 iOS 15 上启动应用程序时观察“应用程序需要更新”消息
- javascript - 如何删除Firefox扩展中的存储值?
- database - Neo4j - Java 堆空间 java.lang.OutOfMemoryError: Java 堆空间
- regex - 如何将多个数字序列捕获为重复组?
- django - 使用下载按钮在 django 管理面板中下载模型数据