2014-06-24 50 views
0

我有兩個arrays如何在兩個數組匹配PHP鍵值

 Array 
     (
      [0] => Array 
       (
        [id] => 1 
        [affiliate_id] => 190 
       ) 

      [1] => Array 
       (
        [id] => 2 
        [affiliate_id] => 946 
       ) 

     ) 




     Array 
     (
      [0] => Array 
       (
        [id] => 1 
        [user_id] => 190 
       ) 

      [1] => Array 
       (
        [id] => 2 
        [user_id] => 246 
       ) 

      [2] => Array 
       (
        [id] => 3 
        [user_id] => 249 
       ) 
      [3] => Array 
       (
        [id] => 3 
        [user_id] => 250 
       ) 

     ) 

現在我想其中有這樣

值的數組,如果存在於第二個數組作爲第一個數組的affiliate_iduser_id然後我會得到其在第三組值一樣

Array 
     (
      [0] => Array 
       (

        [affiliate_id] => 190 
       ) 
     ) 

我只是想affiliate_id這是存在於山高第二陣列user_id

+1

老兄,寫一個對象,讓你的生活變得非常容易。 – christopher

+0

你必須自己建立這個函數 – Nicco

+0

@christopher $ this-> data ['users_names']和$ this-> data ['affiliate_array']是我擁有的兩個數組。 – user3607000

回答

1
$a = Array(
    Array('id' => 1, 'affiliate_id' => 190), 
    Array('id' => 2, 'affiliate_id' => 946) 
); 

$b = Array(
    Array('id' => 1, 'user_id' => 190), 
    Array('id' => 2, 'user_id' => 246), 
    Array('id' => 3, 'user_id' => 249), 
    Array('id' => 3, 'user_id' => 250) 
); 

$c = array_map(function ($arr) { return $arr['affiliate_id']; }, $a); 
$d = array_map(function ($arr) { return $arr['user_id']; }, $b); 

$e = array_intersect($c, $d); 

print_r($e); 
0

嘗試in_array()帶環

$a = firstarray; 
$b = second array; 
$i =0; 
foreach($b as $k=>$v) { 
if(!empty($a[$i])) { 
     if(in_array($v['user_id'], $a[$i])) { 
     $c[]['affiliate_id'] = $v['user_id']; 
     } 
    } 
    $i++; 
} 
print_r($c); 

輸出: -

Array 
(
    [0] => Array 
     (
      [affiliate_id] => 190 
     ) 

) 
0

使用以下代碼:

<?php 

$arr1 = array(array('id' => 1, 'affiliate_id' => 190), 
       array('id' => 2, 'affiliate_id' => 946)); 

$arr2 = array(array('id' => 1, 'user_id' => 190), 
       array('id' => 2, 'user_id' => 246), 
       array('id' => 3, 'user_id' => 249), 
       array('id' => 4, 'user_id' => 250)); 

$count = 0; 

foreach ($arr1 as $k1 => $v1) { 
    if (in_array($v1['affiliate_id'], $arr2[$count])) 
    { 
     $arr3[]['affiliate_id'] = $v1['affiliate_id']; 
    } 
    $count++; 
} 

echo '<pre>'; print_r($arr3); 

輸出

Array 
(
    [0] => Array 
     (
      [affiliate_id] => 190 
     ) 
) 
相關問題