Làm thế nào để biết được một array kiểu associative hay không ?

+1 thích

Trong PHP có hai kiểu array một kiểu bình thường khi index tăng dần từ 0, còn một kiểu thì index có thể là bất cứ string hay number. Vậy làm sao để biết được array thuộc kiểu nào ?

avatar đã hỏi ngày 26 tháng 3 bởi dophuquy (650 điểm)  

2 Trả lời

0 k thích
 
Hay nhất

cách đơn gian nhất là kiểm tra xem index của array đó có phải tăng dần từ 0 :

function isAssociativeArray(array $arr)
{
    if (array() === $arr) return false;
    return array_keys($arr) !== range(0, count($arr) - 1);
}
avatar trả lời ngày 6 tháng 4 bởi neo.ptit (1,880 điểm)  
đã được chọn ngày 6 tháng 4 bởi admin
0 k thích

cách khác là kiểm tra xem trong số các index có bao nhiêu index là kiểu string

function hasStringKeys(array $array) {
  return count(array_filter(array_keys($array), 'is_string')) > 0;
}
avatar trả lời ngày 6 tháng 4 bởi newbie (1,040 điểm)  
...