在嵌套的 php 数组中搜索值

Searching for value in nested php arrays

我有一个这样的数组,它可以有任意数量的 "domain" 数组。我在这个例子中删除了不必要的键。

Array
(
    [result] => success
    [clientid] => 7
    [numreturned] => 2
    [domains] => Array
        (
            [domain] => Array
                (
                    [0] => Array
                        (
                            [domainname] => example.net
                        )

                    [1] => Array
                        (
                            [domainname] => example.com
                        )

                )

        )

)

我需要弄清楚如何检查这个数组以查看它是否包含域名。

我正在尝试做这样的事情:

if(arrayContains("example.com")){
$success = true;
}

我已经尝试了很多在 SO 上找到的解决方案,但它们似乎没有用。我发现的一个例子使用了 array_key_exists,这与我需要的有点相反。

关于如何做到这一点有什么建议吗?

尝试这样的事情:

$domains = $arr['domains'];
foreach($domains AS $domain)
{
   foreach($domain AS $internal_arr)
   {
      if($internal_arr['domainname'] == 'example.net')
      {
        $success = true;
      }
   }
}
$array = array(
    "result" => "success",
    "clientid" => 7,
    "numreturned" => 2,
    "domains" => array(
            "domain" => array(
                    0 => array(
                            "domainname" => "somedomain.com",
                            3 => array(
                                "domainname" => "searchdomanin.com",

                                ),
                        ),

                    1 => array(
                            "domainname" => "extwam",
                        ),

                )

        )

);

$succes = FALSE;
$search = 'searchdomanin.com';

array_walk_recursive($array, function($key, $value) use(&$success, &$search){ 
    if($key === $search){
       $success = TRUE;
    }
},
[&$key ,&$val]);

if($success){
    echo 'FOUND';
}

适用于您拥有的任何维度数组。

使用这个功能来帮助你:

<?php
function recursive_array_search($needle,$haystack) {
    foreach($haystack as $key=>$value) {
        $current_key=$key;
        if($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false)) {
            return $current_key;
        }
    }
    return false;
}
?>

这是在 PHP 文档中关于 array_search() 的评论之一中找到的。