如何判断任何数组键的值是否为我正在寻找的值?

时间:2010-09-30 21:03:12

标签: php arrays key-value

我有一个像这样的数组:

$cart = Array ( 
[0] => Array ( [TypeFlag] => S [qty] => 2 [denom] => 50  [totalPrice] =>  100 )
[1] => Array ( [TypeFlag] => V [qty] => 1 [denom] => 25  [totalPrice] => 25 ) 
[2] => Array ( [TypeFlag] => C [qty] => 1 [denom] => 25  [totalPrice] => 25 ) 
) 

有没有办法,没有循环遍历所有这些并一次检查一个,以确定其中任何一个的TypeFlag值是否为S?

2 个答案:

答案 0 :(得分:0)

试试这个:

foreach($cart as $key => $value) {
    if ($value['TypeFlag'] == 'S') {
        return $key;
    }
}

这将返回TypeFlag值为S的子数组的键。但是,这会在找到与搜索模式匹配的第一个子数组后停止。不确定你想要的输出是什么以及预期有多少结果。如果您能提供更多信息,我可以为您提供更准确的示例。

答案 1 :(得分:0)

给定一个函数,为函数的每个元素返回TypeFlag

function get_type_flag($item) {
    return $item["TypeFlag"];
}

您可以将该函数应用于数组中的每个元素:

$typeflags = array_map("get_type_flag", $cart);

并查看该数组中是否有S

if (in_array("S", $typeflags)) {
    ...
}