开发者社区 问答 正文

in_array()和多维数组

我in_array()过去经常检查数组中是否存在值,如下所示:

$a = array("Mac", "NT", "Irix", "Linux"); if (in_array("Irix", $a)) { echo "Got Irix"; }

//print_r($a); 但是多维数组(下)如何处理-如何检查该值是否存在于多维数组中?

$b = array(array("Mac", "NT"), array("Irix", "Linux"));

print_r($b); 还是我不应该使用in_array()多维数组?

展开
收起
保持可爱mmm 2020-01-16 15:43:48 339 分享 版权
1 条回答
写回答
取消 提交回答
  • in_array()在多维数组上不起作用。您可以编写一个递归函数来为您做到这一点:

    function in_array_r($needle, $haystack, $strict = false) { foreach ($haystack as $item) { if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) { return true; } }

    return false;
    

    } 问题来源于stack overflow

    2020-01-16 15:43:59
    赞同 展开评论
问答标签:
问答地址: