2013-11-03 10 views
-1

我有一個數組,它是這樣的:如何檢查數組元素在兩dimessional陣列存在於PHP

Array 
(
[0] => Array 
    (
     [product_id] => 1 
     [product_name] => T-Shirts 
     [quantity] => 2 
     [price] => 300 
    ) 

[1] => Array 
    (
     [product_id] => 2 
     [product_name] => Red Shirt 
     [quantity] => 4 
     [price] => 200 
    ) 

[2] => Array 
    (
     [product_id] => 3 
     [product_name] => Cap 
     [quantity] => 2 
     [price] => 50 
    ) 

) 

我要檢查的product_id中是否存在與否。我試圖in_array但沒有得到任何結果。

是否有任何內置函數檢查它,而不會將數組放入循環中。

+0

有很多的這種不同的方法,如果你只是尋找它... [此帖](http://stackoverflow.com/q/1019076/623952)似乎有相當數量的upvotes,即使 –

回答

0

正如gloomy.penguin提到的,你可以使用array_filter

<?php 
$a = Array 
(
0 => Array 
    (
     "product_id" => 1, 
     "product_name" => "T-Shirts", 
     "quantity" => 2, 
     "price" => 300, 
    ), 

1 => Array 
    (
     "product_id" => 2, 
     "product_name" => "Red Shirt", 
     "quantity" => 4, 
     "price" => 200, 
    ), 

2 => Array 
    (
     "product_id" => 3, 
     "product_name" => "Cap", 
     "quantity" => 2, 
     "price" => 50, 
    ), 

); 

$result = array_filter($a, function($var) { 
    if ($var['product_id'] == 3) return true; 
}); 

if (empty($result)) echo "Not found"; 
else echo "Found"; 

echo var_dump($result); 
?> 
0

你可以通過每一個產品的循環:

foreach($array as $product) { 
    if(isset($product['product_id'])) 
     // do something 
} 

我不認爲有一個內置的函數來處理這個問題。

+0

還有array_filter() –

相關問題