php数组判断值,数值比对

忧桑 发布于 2012/08/13 18:18
阅读 1K+
收藏 0
PHP

$arr =array(

    "1" =>"111111",

    "2" =>"111111",

    "3" =>"111111",

    "4" =>"111111",

);

//我想判断值,通过一次循环遍历 ,$arr[1]与$arr[2],$arr[2]与$arr[3],$arr[1]与$arr[3]是否相等,如果不相等,则输出"不等",不终止操作,把所有的情况都遍历一遍。

我是这样写的,但是漏掉了很多判断情况;显然不对的。

for($i=1;$i<=4;$i++){
    $n=$i+1;
    if($arr[$i]== $arr[$n]){
         echo '一样的';
         echo "<br/>";
    }
}

 

加载中
0
老陌
老陌
一开始看错咯。。。
$arr =array(
    "1" =>"111111",
    "2" =>"222",
    "3" =>"333",
    "4" =>"111111",
);

$arr1 = array();
foreach($arr as $k => $v) {
	$arr1[md5($v)][] = $k;
}

echo '<pre>';
print_r($arr1);
这样就归类了,

0
KeepMoving
KeepMoving

你要用二次循环,还有你最好用“===”符号。用“==”有时会出错,比如"5dfdf"==5。

$arrLen = count($arr);
for($i=0;$i<$arrLen;$i++){
  for($j=$i+1;$i<$arrLen;$j++){
    if($a[$i]===$a[$j]){
       //一样
     }else{
      //不一样
     }
 }
}

 

0
qqyu
qqyu

if(count(array_unique($arr))!=count($arr)){
 echo "完全一样";
}else{
 echo "不完全一样";
}

你的目的是看他们是否有不一样的值,这样子貌似更简单点,同样得到你要的结果

0
忧桑
忧桑
学习了,我都实践下。
0
HelloChina
HelloChina
冒泡 跟 快速排序可以解决一次循环藐视做不到,你也用sort 等等PHP函数实现
返回顶部
顶部