检查数组元素如何存在于 php 中的双元数组中


How check array element exist in two-dimessional array in 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但没有得到任何结果。

是否有任何内置函数可以在不将数组置于循环中的情况下检查它。

正如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);
?>

您可以遍历每个产品:

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

我认为没有内置函数来处理这个问题。