Avatar ·

如何在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 ``` 现在我完全糊涂了。什么时候使用`=?