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)