PHP數組類型實際上比傳統的C數組更類似於有序映射。這是PHP的原始通用數據結構。該手冊可以說The indexed and associative array types are the same type in PHP, which can both contain integer and string indices。PHP中「關聯」和「索引」數組之間的實際區別是什麼?
但是,有很多情況下,內置語言功能會區分「索引」數組(具有順序整數鍵的數組)和「關聯」數組(具有非順序和/或混合型)。
其中一個例子是array_merge函數。
如果輸入數組具有相同的字符串鍵,則該鍵的後面的值將覆蓋前一個鍵。但是,如果數組包含數字鍵,則後面的值不會覆蓋原始值,但會被追加。
如果只給出一個數組並且數組索引,則按照連續方式重新索引鍵。
PHP中的其他地方在索引和關聯數組之間有所區別?我特別感興趣的是Userland的差異,儘管對PHP源代碼中數組實現的深入瞭解也很有趣。
+1以獲得更好的信息,但應該注意的是,您可以使用next()函數循環索引數組和關聯數組。換句話說,關聯數組仍然有一些內部的秩序概念。 – 2009-08-25 19:42:03
沒錯,並且沿着這些方向,索引數組並不一定具有預期的順序 - 相反,數組使用的順序(使用'foreach'或'next()',取決於它的順序)所以如果在$ arr [2]之前設置$ arr [3],那麼迭代時將保留該順序。 – 2009-08-25 21:20:50