[英]How to compare array values in php?
我需要将数组值相互比较。这些值是唯一的ID。 因此,必须检查ID值是否重复。
<?php
$id=array("firstid2012","secondid2014","thirddid2010","fourthid2014");
$idcount=count($id);
for($i=0;$i<$idcount;$i++){
//how to compare??
}
?>
如果重复的id为true,那么我必须更改该数组值的值。所以我需要知道哪个数组值也要重复。
if (count($idvalues) == count(array_unique($idvalues))){
//ALL VALUES ARE DISTINCTS
}
else {
//THERE ARE DUPLICATED VALUES
$duplicated=array();
$visited=array();
foreach($idvalues as $value){
if (in_array($value,$visited)){
$duplicated[]=$value;
}
$visited[]=$value;
}
$duplicated=array_uniq($duplicated);
}
您感兴趣的一些功能:
array_unique
:删除重复的值
http://php.net/manual/zh/function.array-unique.php
array_intersect
:返回出现在多个数组中的值。
这是从数组中获取所有唯一值的最快方法:
$unique = array_keys(array_flip($array));
在后端,它使用哈希表,而如果使用array_unique
,则仅在数组之上进行迭代,这是非常低效的。 差异在数量级上。
您可以使用array_unique()获取所有唯一值的数组,然后将大小与原始数组进行比较:
if (count(array_unique($submitted_genres)) !== count($submitted_genres)) {
// there's at least one dupe
}
您无需为此运行任何循环,只需使用array_unique();即可。 我两次添加了fourthid2014
$id[] = array("firstid2012", "secondid2014", "thirddid2010", "fourthid2014", "fourthid2014");
print_r($id[0]); // print it 5 values
$result = array_unique($id[0]);
print_r($result);// print it 4 values
您可以使用array_unique()函数删除重复的值,请参考该网址以获取更多信息http://www.w3schools.com/php/func_array_unique.asp
一种简单的方法是
<?php
$id[]=$idvalues;
$idcount=count($id);
for($i=0;$i<$idcount;$i++){
for($ii=0; $ii<$idcount;$ii++)
{
if( $i != $ii ) //We don't want to compare the same index to itself
{
if( $id[$i] == $id[$ii] )
{
//Found same values at both $i and $ii
//As the code is here, each duplicate will be detected twice
}
}
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.