2013-01-12 3 views
6

Tôi gặp sự cố khi cố gắng cho thấy rằng một số (số sản phẩm) nhất định tồn tại trong một mảng kết hợp. Khi tôi thử mã này, tôi luôn bị "sai".Không thể in_array hoạt động với mảng kết hợp

<?php 

$products = array(
    '1000' => array('name' => 'Gibson Les Paul Studio', 
        'price' => 1099.99), 
    '1001' => array('name' => 'Fender American Standard Stratocaster', 
        'price' => 1149.99), 
    '1002' => array('name' => 'Jackson SL1 USA Soloist', 
        'price' => 2999.99) 
); 

if (in_array('1001', $products)) { 
    echo "true"; 
} else { 
    echo "false"; 
} 
?> 

Tôi thực sự đánh giá cao sự trợ giúp nào. Cảm ơn!

Trả lời

23

Bạn đang tìm kiếm array_key_exists(), không in_array(), kể từ khi bạn đang tìm kiếm một phím cụ thể, chứ không phải tìm kiếm các giá trị:

if(array_key_exists('1001', $products)) 
+0

Đó chính xác là những gì tôi cần! Tôi khá mới đối với tất cả các chức năng php tích hợp. Cảm ơn! – thomaskessel

3

Bạn không thể sử dụng in_array() đây (kiểm tra xem một giá trị tồn tại trong một mảng).

Hãy thử array_key_exists() (kiểm tra xem khóa hoặc chỉ mục đã cho tồn tại trong mảng) hay không.

if (array_key_exists('1001', $products)) { 
    echo "true"; 
} else { 
    echo "false"; 
} 

Bạn thậm chí có thể kiểm tra sự tồn tại quan trọng với isset()empty().

+0

Cảm ơn bạn đã giải thích cho tôi! Điều đó giúp tôi rất nhiều. – thomaskessel