在 PHP 中決定關聯數組與順序數組
PHP將所有數組維護為關聯數組,因此需要替代方法來區分關聯數組和順序數組數組,特別是那些僅包含從以下位置開始的數字鍵的數組0.
解決方案:array_is_list ()函數
PHP 8.1引入了array_is_list()函數,提供了一個簡單的解決方案:
var_dump(array_is_list([])); // true var_dump(array_is_list(['a', 'b', 'c'])); // true var_dump(array_is_list([0 => 'a', 1 => 'b', 2 => 'c'])); // true var_dump(array_is_list([1 => 'a', 0 => 'b', 2 => 'c'])); // false var_dump(array_is_list(['a' => 'a', 'b' => 'b', 'c' => 'c'])); // false
遺留的自訂函數程式碼:
如果使用不支援 PHP 8.1的遺留程式碼,可以使用以下自訂函數:
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
此函數實作與 array_is_list( ) 函數,使其可以跨不同 PHP 版本移植。
以上是如何區分 PHP 中的關聯數組和順序數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!