检测字符串是否在PHP中的多维数组中

Tal*_*lon 1 php arrays

我有一个看起来像这样的数组:

Array
(
[0] => Array
(
    [Product] =>  Amazing Widget
    [Value] => 200
)

[1] => Array
(
    [Product] => Super Amazing Widget
    [Value] => 400
)

[2] => Array
(
    [Product] =>  Promising Widget 
    [Value] => 300
)

[3] => Array
(
    [Product] => Superb Widget
    [Value] => 400
)
)
Run Code Online (Sandbox Code Playgroud)

我相信它是一个嵌套的多维数组.

无论如何,我正在尝试检测数组中是否已存在产品名称.这就是我想要做的

if('Super Amazing Widget' is in the array) {
    echo 'In the Array';
}
Run Code Online (Sandbox Code Playgroud)

我试过这个:

if(in_array('Super Amazing Widget', $array)){
    echo 'In The Array';
}
Run Code Online (Sandbox Code Playgroud)

但它没有用,我找不到原因.

编辑:

这里的一些函数运行得非常好:in_array()和多维数组

Ale*_*pin 5

in_array不会进行递归搜索,即在子数组中搜索.您需要循环遍历阵列并手动检查您的值.

$found = false;
foreach($arr as $item) {
    if ($item['Product'] == 'Super Amazing Widget') {
        $found = true;
        break;
    }
}
if ($found)
    echo 'found!'; //do something
Run Code Online (Sandbox Code Playgroud)

实例