2017-04-02 64 views
-3

陣列1個輸出如何獲得其他數組值如果匹配?

Array ( 
     [0] => Array ([ID] => 335 [userid] => 4 [username] => demo [media_id] => 17) 
     [1] => Array ([ID] => 436 [userid] => 4 [username] => demo [media_id] => 18) 
     [2] => Array ([ID] => 637 [userid] => 4 [username] => demo [media_id] => 19) 
     [3] => Array ([ID] => 838 [userid] => 4 [username] => demo [media_id] => 20) 
); 

陣列2輸出

Array ( 
     [1] => Array ([ID] => 35 [userid] => 4 [media_id] => 17) 
     [2] => Array ([ID] => 36 [userid] => 4 [media_id] => 18) 
    ); 

如何獲得如果匹配其它數組值?我需要的,如果media_idarray 1array 2比賽的userid那麼如何在array 2 foreach循環得到perticuler IDusernamearray 1

更新

$array1 = array ( 
    0 => array ("ID" => "335", "userid" => "4", "username" => "demo", "media_id" => "17"), 
    1 => array ("ID" => "436", "userid" => "4", "username" => "demo", "media_id" => "18"), 
    2 => array ("ID" => "637", "userid" => "4", "username" => "demo", "media_id" => "19"), 
    3 => array ("ID" => "838", "userid" => "4", "username" => "demo", "media_id" => "20") 
        ); 

$array2 = array ( 
    1 => array ("ID" => "35", "userid" => "4", "media_id" => "17"), 
    2 => array ("ID" => "36", "userid" => "4", "media_id" => "18") 
         ); 


     foreach($array2 as $array) { 

      foreach($array1 as $get_data) { 
       if($array1['media_id'] == $get_data['media_id'] && $array1['userid'] == $get_data['userid']){ 
            $get_result[] = //get_data true; 
            } else { 
            $get_result[] = //get_data false; 
            } 
           } 


         //get ID and username or show false value 


       } 

最終答案

foreach($array2 as $array) { 
    $return = "false"; 
    foreach($array1 as $get_data) { 
     if($array1['media_id'] == $get_data['media_id'] && $array1['userid'] == $get_data['userid']) { 
     $get_result[] = ['ID' => $get_data['ID'], 'username' => $get_data['username']]; 
     $return = "true"; 
    } 
    } 

    if($return = "false"){ 
     echo false; 
    } 

} 
+0

請把一個有效的PHP數組,而不是輸出 – hassan

+0

哪裏是你企圖在一個'的foreach()'? – Sean

+0

到目前爲止您嘗試過什麼? –

回答

0

如果我深知你的問題(我不知道),這應該工作:

foreach($array2 as $array) { 
    foreach($array1 as $get_data) { 
    if($array1['media_id'] == $get_data['media_id'] && $array1['userid'] == $get_data['userid']) { 
     $get_result[] = ['ID' => $get_data['ID'], 'username' => $get_data['username']]; 
    } 
    } 
} 
if (count($get_result) == 0) { 
    $get_result[] = false; 
} 
+0

嗨,請參閱更新。 – hime

+0

我試過這個,謝謝,但問題是,如果錯誤,我需要一個值。但它顯示出多重虛假價值。我想你明白。 @gmc – hime

+0

任何選項如果不匹配只能得到一次錯誤?我獲得了多重虛假價值。 – hime

0

不確定你的真實需求,但@gm C給了你(部分?所有?)你需要什麼恕我直言

<?php 

$array1 = array ( 
0 => array ("ID" => "335", "userid" => "4", "username" => "demo", "media_id" => "117"), 
1 => array ("ID" => "436", "userid" => "4", "username" => "demo", "media_id" => "118"), 
2 => array ("ID" => "637", "userid" => "4", "username" => "demo", "media_id" => "19"), 
3 => array ("ID" => "838", "userid" => "4", "username" => "demo", "media_id" => "20") 
       ); 

$array2 = array ( 
1 => array ("ID" => "35", "userid" => "4", "media_id" => "17"), 
2 => array ("ID" => "36", "userid" => "4", "media_id" => "18") 
        ); 

$get_result = array(); 

    foreach($array2 as $array) { 

     foreach($array1 as $get_data) { 
      if(($array['media_id'] == $get_data['media_id']) && ($array['userid'] == $get_data['userid'])) { 
           $get_result[] = ['ID' => $get_data['ID'], 'username' => $get_data['username']]; 
           } 
          } 
    } 

if (count($get_result) == 0) { 
echo"false"; 
} 
else { 
echo"true"; print_r($get_result); } 
?> 

/* I modified values to 117 & 118 -> returns "false" */ 
/* If you set values to 17 & 18 -> returns "true" */ 
+0

工作,但問題是相同的我需要一個價值'假'只有一次在其他選項,但我得到多個時間。 – hime

+0

- >我需要一個值爲false - >你是什麼意思? 「media_id」=>「17」 - > true +「media_id」=>「18」 - > true +「media_id」=>「19」 - > false +「media_id」=>「20」 - >但你需要在哪裏存儲錯誤的答案? – OldPadawan

+0

查看gmc的答案。我認爲他完全理解我的問題 – hime

相關問題