dousui3124 2013-09-19 18:06
浏览 23
已采纳

比较多个多维数组

I hope the title is descriptive, I am stuck so I am going to do my best to describe the issue.

I have a comparison I need to make for bed types on a search I am building. One is a $_POST array from the search form ($array1). It lists the bed types, so for example it would look something like:

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

My second array ($array2) is from my CMS's profile information and looks like this:

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

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

The more bed types they have selected in their profile (there are 6) the more entries there would be past "1" in $array2.

What I am trying to achieve it to take the search types from $array1 and see if $array2 has all of the bed types listed in referenced in $array1. If not, I am doing a continue; and moving on to the next user profile record in my foreach loop.

In this example above, given that $array2 has only King and Double and $array1 is looking for a King, Queen and Full bed, the search should come back as FALSE and then continue to the next record. My question is, how do I do this?

I hope this makes sense, please let me know if you have any further questions.

Note: Drupal is the CMS in use here, but for all purposes this is still a multidimensional array, I just mention my CMS as a way to say that I don't have a way to change the data structure.

  • 写回答

1条回答 默认 最新

  • dongmie3987067 2013-09-19 18:33
    关注

    Try this

    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
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路