一千萬個為什麽

搜索

確定PHP數組是否使用鍵或索引


我如何確定PHP數組是否像這樣構建:

array('First', 'Second', 'Third');

或者像這樣:

array('first' => 'First', 'second' => 'Second', 'third' => 'Third');

???

最佳答案

我在PHP工具中使用這些簡單的函數:

function is_flat_array($ar) {
    if (!is_array($ar))
        return false;

    $keys = array_keys($ar);
    return array_keys($keys) === $keys;
}

function is_hash($ar) { 
   if (!is_array($ar))
       return false;

   $keys = array_keys($ar);
   return array_keys($keys) !== $keys;
}

我從未在大型陣列上測試過它的性能。我主要在具有10個或更少鍵的陣列上使用它,所以它通常不是問題。我懷疑它比將$ keys與生成的範圍 0..count($ array)進行比較會有更好的表現。

轉載註明原文: 確定PHP數組是否使用鍵或索引

猜你喜歡