Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPUnit断言两个多维数组相等,但顺序不重要_Php_Arrays_Multidimensional Array_Phpunit_Associative Array - Fatal编程技术网

PHPUnit断言两个多维数组相等,但顺序不重要

PHPUnit断言两个多维数组相等,但顺序不重要,php,arrays,multidimensional-array,phpunit,associative-array,Php,Arrays,Multidimensional Array,Phpunit,Associative Array,我有这两个阵列 $expectedArray = [ 'mainKey1' => [ 'subKey1.1' => 'Value 1', 'subKey1.2' => 'Value 2', 'subKey1.3' => 'Value 3', ], 'mainKey2' => [ 'subKey2.1' => 'Value 21', 'subKey2.2' => 'Va

我有这两个阵列

$expectedArray = [
   'mainKey1' => [
       'subKey1.1' => 'Value 1',
       'subKey1.2' => 'Value 2',
       'subKey1.3' => 'Value 3',
   ],
   'mainKey2' => [
       'subKey2.1' => 'Value 21',
       'subKey2.2' => 'Value 22',
       'subKey2.3' => 'Value 23',
   ],
];

$outputArray = [
   'mainKey1' => [
       'subKey1.1' => 'Value 1',
       'subKey1.2' => 'Value 2',
       'subKey1.3' => 'Value 3',
   ],
   'mainKey2' => [
       'subKey2.1' => 'Value 21',
       'subKey2.2' => 'Value 22',
       'subKey2.3' => 'Value 23',
   ],
];

我使用的函数与这里相同,所以

但这会返回一个错误
[PHPUnit\Framework\Exception]数组到字符串的转换


知道我做错了什么吗?

我不知道你需要这个函数做什么(因为两个数组的元素顺序相同),也不知道你用PHPUnit做什么。 使用PHP,您可以使用===检查两个数组是否相同

$expectedArray = [
   'mainKey1' => [
       'subKey1.1' => 'Value 1',
       'subKey1.2' => 'Value 2',
       'subKey1.3' => 'Value 3',
   ],
   'mainKey2' => [
       'subKey2.1' => 'Value 21',
       'subKey2.2' => 'Value 22',
       'subKey2.3' => 'Value 23',
   ],
];

$outputArray = [
   'mainKey1' => [
       'subKey1.1' => 'Value 1',
       'subKey1.2' => 'Value 2',
       'subKey1.3' => 'Value 3',
   ],
   'mainKey2' => [
       'subKey2.1' => 'Value 21',
       'subKey2.2' => 'Value 22',
       'subKey2.3' => 'Value 23',
   ],
];

var_dump($outputArray === $expectedArray);  //bool(true)

通过更改数组中的一些内容来检查这一点,结果将得到bool(false)。

array\u diff\u assoc
将值作为字符串进行比较。它写在手册中,顺便说一句。你应该看看这个:
$expectedArray = [
   'mainKey1' => [
       'subKey1.1' => 'Value 1',
       'subKey1.2' => 'Value 2',
       'subKey1.3' => 'Value 3',
   ],
   'mainKey2' => [
       'subKey2.1' => 'Value 21',
       'subKey2.2' => 'Value 22',
       'subKey2.3' => 'Value 23',
   ],
];

$outputArray = [
   'mainKey1' => [
       'subKey1.1' => 'Value 1',
       'subKey1.2' => 'Value 2',
       'subKey1.3' => 'Value 3',
   ],
   'mainKey2' => [
       'subKey2.1' => 'Value 21',
       'subKey2.2' => 'Value 22',
       'subKey2.3' => 'Value 23',
   ],
];

var_dump($outputArray === $expectedArray);  //bool(true)