-1

次のような配列があります。

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 を試みましたが、結果が得られませんでした。

配列をループに入れずにチェックする組み込み関数はありますか。

4

2 に答える 2

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);
?>
于 2013-11-03T13:02:56.137 に答える