我有一个像这样的数组:
$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?
答案 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)) {
...
}