0

我希望标题是描述性的,我被卡住了,所以我会尽力描述这个问题。

在我正在构建的搜索中,我需要对床型进行比较。一个是来自搜索表单 ($array1) 的 $_POST 数组。它列出了床的类型,例如,它看起来像:

array('King', 'Queen', 'Full');

我的第二个数组 ($array2) 来自我的 CMS 的个人资料信息,如下所示:

array(
"field_bed_types" => array(                
  "und" => array(
    "0" => array(
      "value" => "King"
            )

    "1" => array(
      "value" => "Double"
            )
        )
    )
)

他们在配置文件中选择的床类型越多(有 6 个)"1",$array2 中过去的条目就越多。

我想要实现的是从 $array1 中获取搜索类型,并查看 $array2 是否具有 $array1 中引用的所有床类型。如果没有,我正在做一个continue;并移动到我的 foreach 循环中的下一个用户配置文件记录。

在上面的示例中,假设 $array2 只有 King 和 Double 并且 $array1 正在寻找 King、Queen 和 Full 床,搜索应该返回 FALSE,然后继续下一条记录。我的问题是,我该怎么做?

我希望这是有道理的,如果您有任何进一步的问题,请告诉我。

注意: Drupal 是这里使用的 CMS,但出于所有目的,这仍然是一个多维数组,我只是提到我的 CMS 是为了说明我没有办法更改数据结构。

4

1 回答 1

1

尝试这个

foreach($array1 as $key=>$type)
{
    $return[$key]=false;
    foreach($array2['field_bed_types']['und'] as $typeArray)
    {
        if ($type==$typeArray['value'])
            $return[$key]=true;
    }
}
$failed=false;
foreach($return as $match)
{
    if($match==flase)
    {
        $failed=true;
    }
}
if($failed==false)
{
    // do stuff if passed
}
于 2013-09-19T18:33:32.610 回答