diff --git a/core/lib/Drupal/Core/Field/FieldItemList.php b/core/lib/Drupal/Core/Field/FieldItemList.php index 152005b..6f1d201 100644 --- a/core/lib/Drupal/Core/Field/FieldItemList.php +++ b/core/lib/Drupal/Core/Field/FieldItemList.php @@ -9,6 +9,7 @@ use Drupal\Core\Session\AccountInterface; use Drupal\Core\TypedData\DataDefinitionInterface; use Drupal\Core\TypedData\Plugin\DataType\ItemList; +use Drupal\Component\Utility\DiffArray; /** * Represents an entity field; that is, a list of field item objects. @@ -408,6 +409,14 @@ public function equals(FieldItemListInterface $list_to_compare) { }; array_walk($value1, $callback); array_walk($value2, $callback); + if (is_array($value1) && is_array($value2)) { + $array_diff1 = DiffArray::diffAssocRecursive($value1, $value2); + $array_diff2 = DiffArray::diffAssocRecursive($value2, $value1); + $array_common_diff = array_merge($array_diff1, $array_diff2); + if ($array_common_diff) { + return FALSE; + } + } return $value1 == $value2; }