代码之家  ›  专栏  ›  技术社区  ›  EmmyS

如何判断任何数组键的值是否是我要查找的值?

  •  0
  • EmmyS  · 技术社区  · 14 年前

    我有一个这样的数组:

    $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 回复  |  直到 14 年前
        1
  •  0
  •   Valentin Flachsel    14 年前

    试试这个:

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

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

        2
  •  0
  •   Richard Fearn    14 年前

    给定一个返回 TypeFlag 对于数组的每个元素:

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

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

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

    看看是否 S 在该数组中:

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