Moin!
Also ich sage mal, dass das "nicht sinnvoll" ist und gebe folgenden Code zu bedenken:
Du kannst immer Code konstruieren, der den Unsinn irgendeiner Methode demonstriert.
$myArray1[0] = "1abc";
$myArray1[1] = "1cde";
$myArray2["0"] = 1;
$myArray2["1"] = 1;
var_dump($myArray1 == $myArray2);
> Ergebnis: bool(true)
Numerische Strings werden übrigens immer in Integer gewandelt. PHP kann keine numerischen Strings als Array-Key, außer man castet ein Object zum Array - und kriegt damit eklige Probleme.
Mein Gegenbeispiel:
~~~php
$myArray1[0] = "1abc";
$myArray1[1] = "1cde";
$myArray2[1] = "1cde";
$myArray2[0] = "1abc";
var_dump($myArray1 == $myArray2);
var_dump($myArray1 === $myArray2);
Ergebnis: bool(true) und bool(false)
Wie macht das Sinn???
Macht ziemlich viel Sinn im richtigen Kontext - und genau darum gehts. Wenn ich annähernd identische Arrays aus derselben Quelle kriege und sie vergleichen will, aber die Key-Reihenfolge ist eventuell unterschiedlich...
Ich denke, beim Array müsste man vorher sortieren mit keysort oder was auch immer und dann mit "===" vergleichen.
Sortieren kostet Zeit. Und ich muss direkt zweimal sortieren, statt direkt nur einmal zu vergleichen.
- Sven Rautenberg