2016-12-15 131 views
0

我有兩個不同的數組。一個是下面的單維數組。php比較單維數組中的多維數組值

Array 
( 
    [0] => products_01.jpg 
    [1] => products_02.jpg 
) 

而第二個數組是像下面這樣的多維數組。

Array 
(
    [0] => Array 
     (
      [imgurl] => http://example.com/upload/products_01.jpg 
      [name] => products_01.jpg 
     ) 

    [1] => Array 
     (
      [imgurl] => http://example.com/upload/products_02.jpg 
      [name] => products_02.jpg 
     ) 

    [2] => Array 
     (
      [imgurl] => http://example.com/upload/products_03.jpg 
      [name] => products_03.jpg 
     ) 

    [3] => Array 
     (
      [imgurl] => http://example.com/upload/products_04.jpg 
      [name] => products_04.jpg 
     ) 

) 

現在我想比較這兩個數組,如果我們得到相同的值的關鍵「名稱」,然後刪除該數組。 不使用foreach或。有沒有人有想法,PHP提供任何內置數組函數或不?

我想輸出像下面

Array 
(

    [0] => Array 
     (
      [imgurl] => http://example.com/upload/products_03.jpg 
      [name] => products_03.jpg 
     ) 

    [1] => Array 
     (
      [imgurl] => http://example.com/upload/products_04.jpg 
      [name] => products_04.jpg 
     ) 

) 
+0

沒有使用foreach?那麼有很多替代方法可以做到這一點像array_map – Beginner

+0

@NewbeeDev你可以給我舉例請 –

回答

3

假設一維數組稱爲$ arrayA和多維數組稱爲$ arrayB,你可以做到以下幾點:

$arrayB = array_filter($arrayB, function($arrayBItem) use ($arrayA) { 
    return ! in_array($arrayBItem['name'], $arrayA); 
}); 

如果您不想覆蓋多維數組$ arrayB,請將array_filter調用分配給其他變量,例如$ arrayC。

希望這會有所幫助!

+0

謝謝....... Ben plummer –

+0

沒問題,很高興我可以幫忙! –