我希望标题是描述性的,我被困住了,所以我会尽力描述这个问题。
我需要在我正在构建的搜索中对床型进行比较。一个是搜索表单中的$ _POST数组($ array1)。它列出了床型,例如它看起来像:
array('King', 'Queen', 'Full');
我的第二个数组($ array2)来自我的CMS的个人资料信息,如下所示:
array(
"field_bed_types" => array(
"und" => array(
"0" => array(
"value" => "King"
)
"1" => array(
"value" => "Double"
)
)
)
)
他们在个人资料中选择的床位类型越多(有6个),$ array2中的条目越多"1"
。
我想要实现它从$ array1中获取搜索类型,并查看$ array2是否包含$ array1中引用的所有床类型。如果没有,我正在进行continue;
并转到我的foreach循环中的下一个用户个人资料记录。
在上面的这个例子中,假设$ array2只有King和Double而$ array1正在寻找King,Queen和Full床,搜索应该返回FALSE然后继续到下一条记录。我的问题是,我该怎么做?
我希望这是有道理的,如果您有任何其他问题,请告诉我。
注意: Drupal是这里使用的CMS,但出于各种目的,这仍然是一个多维数组,我只是提到我的CMS作为一种方式来说我没有一种改变数据结构的方法。
答案 0 :(得分: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
}