【问题标题】:How check array element exist in two-dimessional array in php [duplicate]如何在php中检查二维数组中存在的数组元素[重复]
【发布时间】:2013-11-14 04:56:33
【问题描述】:

我有一个类似的数组:

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 但没有得到任何结果。

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

【问题讨论】:

  • 如果你只是搜索它,有很多不同的方法......this post 似乎甚至有相当多的支持

标签: php


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以循环浏览每个产品:

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

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

    【讨论】:

    • 有array_filter()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 2022-11-30
    • 1970-01-01
    • 2023-03-26
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多