比较两个数组,如果有相同的值,则将它们分配给变量

时间:2013-10-26 14:15:17

标签: php arrays

我想知道该怎么做。我有两个数组,我需要将它们分配给一个变量。以下示例显示了输出。当我使用print_r()打印输出时,我要匹配的值是“ id_car ”..

1)用于此数组的变量是$ data。

Array ( [0] => 26 )

2)用于此数组的变量是$ dataKereta。

Array ( [0] => Array ( [0] => 25 [id_car] => 25 [1] => 23 [id_user] => 23 ) 

[1] => Array ( [0] => 26 [id_car] => 26 [1] => 23 [id_user] => 24)

[2] => Array ( [0] => 27 [id_car] => 27 [1] => 23 [id_user] => 25  ) )  

我想要的是,在第一个数组中找到与第二个数组相同的值,如果相同则将它们分配给变量..

我试过这样做

foreach ($dataKereta as $dk => $dk1) {
    if($data[$dk] != $dk1['id_car']) {
        $not_same[] = $dk1;
    }
    else {
        $same[] = $dk1;
    }
}

我上面的代码找到了匹配值,如果不匹配则分配到$ not_same变量中,否则..当代码为第一个变量时,这个代码是正常的:

Array ( [0] => 25 [1] => 26 ) 

但是如果我删除“[0] => 25”值,它就开始没有检测到26 ..我很抱歉英语不好。

1 个答案:

答案 0 :(得分:0)

如果您的数据包含多个元素,请尝试此操作

即$ data =(0 =>'26',1 => '27');

foreach ($data as $dataval) {
    foreach ($dataKereta as $key=>$dk) {
        if ($dataval == $dk['id_car']) {
            $same[] = $dk['id_car'];
        } 
    }
}

foreach ($dataKereta as $key=>$dk) {
    if (!in_array($dk['id_car'],$same)) {
        $not_same[] = $dk['id_car'];
    }
}

<强>结果

相同:
数组([0] =&gt; 26 [1] =&gt; 27)
not_same:
数组([0] =&gt; 25)