2013-10-31 25 views
1

我有兩個數組。左加入,但在PHP陣列

Array 
(
    [0] => Array 
     (
      [id] => 12 
      [user_id] => 1 
      [date] => 2013-10-21 23:01:52 
      [type] => 1 
      [name] => Wypłata UNDICOM 
      [quantity] => 0 
      [value] => 1700 
     ) 

    [1] => Array 
     (
      [id] => 13 
      [user_id] => 1 
      [date] => 2013-10-21 23:01:52 
      [type] => 0 
      [name] => Rata (gwarancja MacBook Air) 
      [quantity] => 0 
      [value] => 90 
     ) 

    [2] => Array 
     (
      [id] => 16 
      [user_id] => 1 
      [date] => 2013-10-21 23:01:52 
      [type] => 0 
      [name] => TESCO (zakupy) 
      [quantity] => 0 
      [value] => 0 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [id] => 3 
      [data_id] => 16 
      [name] => Coca-Cola 
      [quantity] => 2 
      [value] => 5 
     ) 

    [1] => Array 
     (
      [id] => 4 
      [data_id] => 16 
      [name] => Pizza 
      [quantity] => 1 
      [value] => 10 
     ) 

) 

我想顯示這兩個數組,但第一個數組是一個類別,第二個數組有一個元素。 關係在id(第一個數組)和data_id(第二個數組)之間。 在MySQL中是簡單的左加入,但我不知道如果是在PHP中的功能。 我只是嘗試代碼,如果等等,但沒有成功。 我想要一個簡單的解決方案,所以如果它是不可能的,那就告訴我。

乾杯!

+2

你從哪裏得到數據?我會嘗試修復它,但如果你不能,我會循環一次通過第一個數組來生成一個數組,其中的關鍵是ID。這將使查找價值非常容易。 – jeroen

+0

@Grzegorz你能告訴我們你期待的最終結果是什麼 –

+0

我想對這個數組進行數學運算,但正如你所看到的,有一個組(第一個數組)和可選元素列表(數組第二) 。我需要分配所有,如組 - >元素,或者如果空元素或dosnt存在,只獲得組 – Grzegorz

回答

1

就像jeroen提到的那樣,你可以遍歷這兩個數組並只獲取那些有連接的元素。

$len1 = count(array1); 
$len2 = count(array2); 

for($i = 0 ; $i < len1 ; $i++) 
{ 
    for($j = 0 ; $j < len2 ; $j++) 
    { 
     if($array1[$i]['id'] == $array2[$j]['data_id']) 
     { 
      //some processing which you want to do with this data 
     } 
    } 
}