如何在PHP中正确比较两个数组是否相等?深入探讨细节
大家好!我是PHP新手,遇到了一个让我困惑的问题。我需要检查两个数组是否相等。乍一看很简单,但我已经绞尽脑汁。
我有两个包含用户数据的数组。第一个数组来自数据库,第二个来自网站表单。我想知道数据是否发生了变化,以免发送不必要的更新请求。
以下是代码示例:
```php
$old_data = ['name' => 'Иван', 'age' => 30, 'city' => 'Москва'];
$new_data = ['name' => 'Иван', 'age' => 30, 'city' => 'Москва'];
if ($old_data == $new_data) {
echo "数组相等";
} else {
echo "数组不相等";
}
```
这段代码有效并输出“数组相等”。但我注意到,如果元素顺序不同,`==`也会认为它们相等:
```php
$a = [1, 2, 3];
$b = [3, 2, 1];
var_dump($a == $b); // true
```
而`===`运算符的行为则不同:
```php
var_dump($a === $b); // false
```
现在我完全糊涂了。什么时候使用`=?