PHP-在多维数组中搜索匹配项并返回数组键

时间:2019-04-29 13:18:11

标签: php search multidimensional-array

我有这个数组

Array
(
    [0] => Array
        (
            [sitename] => newsite
            [sitelink] => link1
            [tosite] => testsite
            [tolink] => ABCD
        )

    [2] => Array
        (
            [sitename] => newsite
            [sitelink] => link2
            [tosite] => secondsite
            [tolink] => 1234
        )

)

我需要能够在数组中搜索设置了sitenamesitelinklink1link2的条目

因此,如果搜索确定设置了站点名称并且sitelink = link1,则它将返回ID 0

如果搜索发现站点名称已设置且sitelink = link2,则它将返回ID 3

我希望创建一个类似于以下内容的函数: arraysearch ('link1', $myarray);

该函数将搜索$ myarray,仅检查设置了站点名称的条目,无关紧要,并且站点链接是搜索的值。例如:link1

通常数组中有数百个条目。

有什么办法吗?

这是我要测试的地方。

function myfunction($array, $site,  $value)
{
   foreach($array as $key => $newarr)
   {
      if ( $newarr[$site] === $value )
         return $key;
   }
   return false;
}

echo myfunction($sites, 'sitelink', 'link1');

这种方法有效,但它不会检查是否设置了站点名称。

谢谢

1 个答案:

答案 0 :(得分:0)

尝试一下:

function myfunction($array, $site,  $value)
{
   foreach($array as $key => $newarr)
   {
      if ( $newarr[$site] === $value && isset( $newarr['sitename'] ) )
         return $key;
   }
   return false;
}

echo myfunction($sites, 'sitelink', 'link1');