2016-07-28 5 views
0

У меня есть два массива, и я должен сравнить их друг против друга:Как проверить, содержат ли два массива одинаковые значения?

$a = array('BRANCH','ADDRESS','MOBILE','NAME'); 
$b = array('BRANCH','ADDRESS','MOBILE','NAME'); 

$a == $b → true 

Но когда значения в другом порядке, это сравнение не работает:

$a = array('BRANCH','ADDRESS','MOBILE','NAME'); 
$b = array('NAME','BRANCH','MOBILE','ADDRESS'); 

$a == $b → false 

Как я сравните эти два массива, чтобы убедиться, что оба они содержат одинаковые значения, независимо от их порядка?

+1

сортировать массивы перед сравнением – RomanPerekhrest

+0

'array_diff' подход должен решить вопрос – RomanPerekhrest

+0

ваш вопрос является дубликатом этого http://stackoverflow.com/questions/901815/php-compare -array –

ответ

3

сделав array_diff() который проверка разница между двумя массивами.

$areEqual = array_diff($a, $b) === array_diff($b, $a); 

или

$areEqual = !(array_diff($a, $b) || array_diff($b, $a)); 
0
sort($a); 
sort($b); 
if ($a==$b) { 
echo "arraysAreEqual"; 
} 
+0

Допустимый подход, но он изменяет исходные массивы, что может быть нежелательным. – deceze

Смежные вопросы