PHP判斷陣列是數值陣列
#具體想法:取得陣列的所有鍵:「array_keys()」
#遍歷所有鍵判斷是否依照順序從0開始每個增一。
具體方法如下:(推薦學習:PHP程式設計從入門到精通)
function _checkAssocArray($arr) { $index = 0; foreach (array_keys($arr) as $key) { if ($index++ != $key) return false; } return true; }
邏輯很簡單,關聯陣列的鍵不會全部都按照:0,1,2,3…的順序遞增,如果它確實這樣,那麼和數值數組沒有任何區別,相同處理即可。
function is_assoc($arr) { return array_keys($arr) !== range(0, count($arr) - 1); }
測試
$arr = array(1, 2, 3, 4, 5, 6, 7); print is_assoc($arr); // 输出false $arr = array("foo" => "bar", "bar" => "foo"); print is_assoc($arr); // 输出true $arr = array("foo" => "bar", 3, 4, 5); print is_assoc($arr); // 输出true
以上是php判斷數組是否為數值數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!