2013-10-26 58 views
0

我想知道如何做到這一點。我有兩個數組,我需要將它們分配給一個變量。下面的例子顯示了輸出。當我使用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 )) 

我要的是,找到與第二陣列1陣列相同的值,如果同他們分配到變量..

我試圖做這樣的

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 ..我很抱歉因爲英文不好。

回答

0

嘗試此,如果你的數據具有多個元素

即$數據=(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] => 26 [1] => 27)
not_same:
陣列([0] => 25)

+0

此代碼不適用於我。變量$ in沒有輸出返回值,並且兩個數組的值都相同。而且我想通過spesifiec條件「id_car」來搜索它。這個問題真的困擾着我。 –

+0

我會嘗試使用您的變量進行更新。你能準確地顯示你想要的輸出結果嗎? – DrewP84

+0

查看我的帖子。我更新底部的輸出。 –

相關問題