2012-01-16 26 views

Trả lời

8

Hãy $ item được mặt hàng có tần số bạn đang kiểm tra trong mảng, $ array là mảng bạn đang tìm kiếm trong

GIẢI PHÁP 1:.

$array_count = array_count_values($array); 
if (array_key_exists($item, $array_count) && ($array_count["$item"] > 1)) 
{ 
    /* Execute code */ 
} 

array_count_values ​​() trả về một mảng sử dụng các giá trị của mảng đầu vào như phím và tần số của họ trong đầu vào như giá trị (http://php.net/manual/en/function.array-count-values.php)

GIẢI PHÁP 2:

if (count(array_keys($array, $item)) > 1) 
{ 
    /* Execute code */ 
} 

Kiểm tra điều này http://www.php.net/manual/en/function.array-keys.php - "Nếu chỉ định giá trị tìm kiếm tùy chọn, thì chỉ có các khóa cho giá trị đó được trả lại"

+0

Bạn có thể muốn phục vụ cho trường hợp '$ item' không tồn tại trong' $ array'. – salathe

+0

Có cảm ơn vì đã chỉ ra. Tôi sẽ thêm trường hợp đó. – Ninja

+0

Đây là những gì tôi đang tìm kiếm! Cám ơn rất nhiều!! –

1

tôi có thể đã hiểu lầm câu hỏi của bạn, nhưng có lẽ đây là những gì bạn neeed:

if (count($in_array) > count(array_unique($in_array))) 
{ 
EXECUTE CODE 
} 
+1

Điều này không chính xác. Điều gì sẽ xảy ra nếu mục lặp lại không phải là mục mà anh ta đang tìm kiếm? – Ninja

3

http://www.php.net/manual/en/function.array-keys.php

chỉ in_array trả về một bool, vì vậy bạn không thể đếm nó. array_keys tuy nhiên trả về một mảng của tất cả các khóa cho một mục trong mảng, vì vậy việc kiểm tra độ dài của kết quả đó sẽ cho bạn biết liệu nó có tồn tại nhiều hơn một lần hay không.

+0

Điều này sẽ không hoạt động trong mọi trường hợp. Điều gì sẽ xảy ra nếu mục lặp lại không phải là mục mà anh ta đang tìm kiếm? – Ninja

+0

@Ninja, Tại sao điều này không hoạt động? – salathe

+0

Xin lỗi, tôi hiểu lầm những gì Gordon nói. Lỗi của tôi. Nhận ra anh ta đang nói về tham số giá trị tìm kiếm trong hàm array_keys – Ninja

Các vấn đề liên quan