通过拉取XML值(使用simplexml_load_file方法)和foreach循环来插入此数组中的值。
$skuArray(2, 4, 3, 7, 7, 4, 1, 7, 9);
填充数组后,我需要检查数组中是否存在任何重复值(在本例中为IE,7和4)。 Product-> sku在下面的foreach循环中包含skuArray值(来自XML文件)。以下代码不起作用。有什么建议?谢谢!
foreach($XMLproducts->product as $Product) {
if (in_array($Product->sku, $skuArray, > 1) {
// execute code
}
}
答案 0 :(得分:0)
使用array_count_values()
获取值发生的次数,然后检查它是否多于一个
$skuArray = array(2, 4, 3, 7, 7, 4, 1, 7, 9);
$dupes = array_count_values($skuArray);
foreach($XMLproducts->product as $Product) {
if ($dupes[$Product->sku] > 1) {
// execute code
}
}
答案 1 :(得分:0)
如果您需要删除重复项,则可以使用array_unique
:
<?php
$input = array(4, 4, 3, 4, 3, 3);
$result = array_unique($input);
// $result = array(4, 3)
?>
如果您只需要检查是否有重复项,那么您可以使用array_count_values
执行此操作:
<?php
$input = array(2, 4, 3, 7, 7, 4, 1, 7, 9);
$counts = array_count_values($input);
$duplicates = array();
foreach($counts as $v => $count){
if($count > 1)
$duplicates[] = $v;
}
然后你将得到一个带有重复值的数组$duplicates
。
答案 2 :(得分:0)
您的代码有拼写错误:
if (in_array($Product->sku, $skuArray, > 1) {
in_array期望第一个参数是针,但你提到&#34; Product-&gt; sku包含skuArray值&#34;,无论如何,它应该是这样的:
if (in_array($Product->sku, $skuArray)) {