Heim  >  Artikel  >  Backend-Entwicklung  >  PHP如何判断两个数组是否相同

PHP如何判断两个数组是否相同

WBOY
WBOYOriginal
2016-06-06 20:32:185565Durchsuche

对于数组的相同肯定有不同的标准,我这里想比较的是:
1、只对两个数组的元素的值比较
2、元素的顺序可以不同
3、可以有重复的元素
4、元素的个数必须相同
例如:

<code>$arr1 = array('a'=>'good','b'=>'great')
$arr2 = array('A'=>'good','B'=>'great')
$arr3 = array('b'=>'great','a'=>'good')
</code>

这三个数组都看作相同。
求判断的方法?

回复内容:

对于数组的相同肯定有不同的标准,我这里想比较的是:
1、只对两个数组的元素的值比较
2、元素的顺序可以不同
3、可以有重复的元素
4、元素的个数必须相同
例如:

<code>$arr1 = array('a'=>'good','b'=>'great')
$arr2 = array('A'=>'good','B'=>'great')
$arr3 = array('b'=>'great','a'=>'good')
</code>

这三个数组都看作相同。
求判断的方法?

<code>$arr1 = array('a'=>'good','b'=>'great');
$arr2 = array('A'=>'good','B'=>'great');
$arr3 = array('b'=>'great','a'=>'good');

var_dump(array_diff($arr1,$arr2));//empty
var_dump(array_diff($arr1,$arr3));//empty
var_dump(array_diff($arr2,$arr3));//empty

</code>

直接使用array_diff就可以了啊

<code>function isSame ($arr1,$arr2){
    foreach ($value as $key => $arr1) {
        if(isset($arr2[$key])){
            if($arr2[$key] !=  $arr1[$key]){
                 return false;
            }
        }else{
            return false;
        }
    }
    return true
}
</code>

大概就是这样

求差集怎么样

是要在一堆数组中找出不相同的还是说怎样。
这是要比较两个数组的:

<code>function isSame($arr1, $arr2) {
    sort($arr1);
    sort($arr2);
    return $arr1 == $arr2;
}
</code>

<code>var_dump( ['b' => ' b', 'a' => 'a'] == ['a' => 'a', 'b' => ' b'] ); # bool(true)
</code>

<code>array_diff
</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP 对二维数组排序Nächster Artikel:图片的尺寸宽高颠倒