PHPUnit so sánh các mảng

Cho dù bạn đang kiểm tra sự bằng nhau trên mảng phẳng hay mảng đa chiều [với phím số, phím kết hợp hoặc phím trộn], nếu bạn làm theo những điều này, việc so sánh các mảng trong PHP sẽ khá đơn giản

So sánh các mảng bằng cách sử dụng đẳng thức nghiêm ngặt [
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
0]

Hai mảng [ví dụ,

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
1 và
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
2] hoàn toàn bằng nhau [i. e.
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
3] khi nào

  1. chúng có các cặp khóa/giá trị giống nhau;
  2. khóa/giá trị theo cùng một thứ tự;
  3. các giá trị là cùng loại

So sánh các mảng bằng cách sử dụng đẳng thức lỏng lẻo [
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
4]

Hai mảng [ví dụ,

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
1 và
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
2] lỏng lẻo bằng nhau [i. e.
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
7] khi chúng có cùng cặp khóa/giá trị bất kể thứ tự và/hoặc loại của chúng

Việc sử dụng đẳng thức lỏng lẻo thường không được khuyến khích, bạn nên luôn cố gắng sử dụng đẳng thức nghiêm ngặt. Điều này có nghĩa là bạn nên đảm bảo kiểu và thứ tự của các phần tử mảng mà bạn đang so sánh giống nhau

Ví dụ về so sánh mảng

Các ví dụ sau đây cho thấy kết quả so sánh mảng bằng cách sử dụng các đẳng thức nghiêm ngặt và lỏng lẻo

Mảng có các cặp khóa/giá trị giống nhau theo cùng thứ tự với các giá trị cùng loại

$a = ['a', 'b', 'c'];
$b = ['a', 'b', 'c'];

// the above is equivalent to:

$a = ['a', 'b', 'c'];
$b = [0 => 'a', 1 => 'b', 2 => 'c'];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true

Mảng có các cặp khóa/giá trị giống nhau theo thứ tự với các loại khóa khác nhau

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
0

Từ ví dụ trên, bạn có thể thấy rằng các loại khóa không được so sánh nghiêm ngặt theo một trong hai đẳng thức

Mảng không có cặp khóa/giá trị giống nhau

Trong các ví dụ sau, hai mảng có khóa khác nhau. Do đó, các cặp khóa/giá trị của hai mảng không bằng nhau trong một trong hai phép so sánh bằng

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
1
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
2

Mảng không cùng kiểu

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
3____14
$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
5

Thay vì sử dụng đẳng thức lỏng lẻo, bạn có thể sử dụng một trong các hàm sắp xếp mảng [chẳng hạn như

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = ['a', 'b', 'c', [ 'foo' => 'bar' ]];

// the above is equivalent to:

$a = ['a', 'b', 'c', [ 'foo' => 'bar' ]];
$b = [0 => 'a', 1 => 'b', 2 => 'c', 3 => [ 'foo' => 'bar' ]];

var_dump[$a == $b]; // true
var_dump[$a === $b]; // true
00, v.v. ] để sắp xếp cả hai mảng, rồi so sánh chúng với đẳng thức nghiêm ngặt

Làm cách nào để so sánh hai mảng trong PHP?

Hàm array_diff[] so sánh giá trị của hai [hoặc nhiều] mảng và trả về sự khác biệt. Hàm này so sánh các giá trị của hai [hoặc nhiều] mảng và trả về một mảng chứa các mục từ mảng1 không có trong mảng2 hoặc mảng3, v.v.

Làm cách nào để kiểm tra khớp mảng trong PHP?

$arraysAreEqual = [$a == $b]; // TRUE nếu $a và $b có cùng cặp khóa/giá trị. $arraysAreEqual = [$a === $b]; .

Làm cách nào để so sánh mảng với chuỗi trong PHP?

Nếu bạn muốn kiểm tra xem một phần cụ thể của Chuỗi có nằm trong mảng hay không, bạn sẽ cần phải sử dụng substr[] để tách phần đó của chuỗi rồi sử dụng in_array[ . .

Làm cách nào để khớp giá trị trong mảng trong PHP?

Mảng_search[] trong PHP là một hàm có sẵn được sử dụng rộng rãi để tìm kiếm và định vị một giá trị cụ thể trong mảng đã cho . Nếu tìm thấy thành công giá trị cụ thể, nó sẽ trả về giá trị khóa tương ứng. Nếu phần tử được tìm thấy hai lần trở lên, thì lần xuất hiện đầu tiên của khóa của giá trị khớp sẽ được trả về.

Chủ Đề