2014-10-02 130 views
-2

假設添加不同的值我有2個數組:PHP創建新的數組從現有

$array1 =([0] => Array ([user] => 'aaa' [count] => '123') 
      [1] => Array ([user] => 'bbb' [count] => '456') 
      [2] => Array ([user] => 'ccc' [count] => '789')); 

$array2= ([0] => aaa) 
      [1] => ccc); 

我想搜索從第二陣列值在第一陣列和創建第三陣列將包含從第一所有元素陣列,像這樣:

$array3 =([0] => Array ([user] => 'aaa' [count] => '123') 
      [1] => Array ([user] => 'ccc' [count] => '789')); 

請幫忙。謝謝你在前進 (抱歉不好英語)

+0

你有什麼試過的?如果還沒有嘗試過,請查看[array_filter](http://php.net/manual/en/function.array-filter.php) – 2014-10-02 16:59:10

+0

嗨。我已經嘗試過'foreach',但是我是基本的PHP用戶,只用示例構建代碼。所以'foreach'不適合我。 – user3137740 2014-10-02 17:01:42

回答

0
$array1 = array(
    array('user' => 'aaa', 'count' => 123), 
    array('user' => 'bbb', 'count' => 456), 
    array('user' => 'ccc', 'count' => 789), 
); 

$array2 = array('aaa', 'ccc'); 

var_dump(array_filter($array1, function($el) use($array2) { 
    return in_array($el['user'], $array2); 
})); 

它保存鍵,您可以根據需要進行重置。或與foreach

$out = array(); 

foreach($array1 as $el) 
{ 
    if (in_array($el['user'], $array2)) 
     $out[] = $el; 
} 

var_dump($out); 
+0

非常感謝!只是測試和工作像魅力! – user3137740 2014-10-02 17:15:11

0

可以嘗試使用foreach()。示例...

$array3 = array(); 
foreach($array2 as $search){ 
    foreach($array1 as $val){ 
     if($search == $val['user']){ 
      $array3[] = $val; 
     } 
    } 
} 
print_r($array3);