The official documentation contains a conceptual description of array comparison in https://www.php.net/manual/en/language.operators.comparison.php#example-113.
Curiously the people who wrote the inofficial spec (I think the HHVM team at Facebook?) came to pretty much the same result, described in https://github.com/php/php-langspec/blob/master/spec/10-expressions.md#relat ional-operators: > If both operands have array type, if the arrays have different numbers of elements, the one > with the fewer is considered less-than the other one, regardless of the keys and values in each, > and the comparison ends. For arrays having the same numbers of elements, the keys from the left > operand are considered one by one, if the next key in the left-hand operand exists in the > right-hand operand, the corresponding values are compared. If they are unequal, the array > containing the lesser value is considered less-than the other one, and the comparison ends; > otherwise, the process is repeated with the next element. If the next key in the left-hand > operand does not exist in the right-hand operand, the arrays cannot be compared and FALSE is > returned. If all the values are equal, then the arrays are considered equal. In reality, array comparison works completely different, it is however unclear to me how exactly it does work: https://3v4l.org/630vG Do we know how this happened? -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php